KR20090129626A - Memory-based storage device and block managin technique thereof - Google Patents

Memory-based storage device and block managin technique thereof Download PDF

Info

Publication number
KR20090129626A
KR20090129626A KR1020080055643A KR20080055643A KR20090129626A KR 20090129626 A KR20090129626 A KR 20090129626A KR 1020080055643 A KR1020080055643 A KR 1020080055643A KR 20080055643 A KR20080055643 A KR 20080055643A KR 20090129626 A KR20090129626 A KR 20090129626A
Authority
KR
South Korea
Prior art keywords
memory
block
error
memory block
storage device
Prior art date
Application number
KR1020080055643A
Other languages
Korean (ko)
Other versions
KR101460240B1 (en
Inventor
박종태
김선택
이양섭
오문욱
박찬익
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020080055643A priority Critical patent/KR101460240B1/en
Priority to US12/457,485 priority patent/US8027194B2/en
Priority to CN200910205766.2A priority patent/CN101673581B/en
Publication of KR20090129626A publication Critical patent/KR20090129626A/en
Priority to US13/137,401 priority patent/US8565021B2/en
Priority to US13/137,409 priority patent/US8638585B2/en
Priority to US13/137,424 priority patent/US8705272B2/en
Priority to US13/137,425 priority patent/US8625344B2/en
Priority to US13/137,422 priority patent/US8614919B2/en
Priority to US13/137,423 priority patent/US8760918B2/en
Application granted granted Critical
Publication of KR101460240B1 publication Critical patent/KR101460240B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

PURPOSE: A memory-based storage device capable of enhancing reliability and a block management method thereof are provided to manage memory blocks of a flash memory based on a read history of the flash memory. CONSTITUTION: A memory controller fetchs a read history from a read history control table of a buffer memory(S300). The memory controller determines whether a refreshed memory block is found based the read history(S310). It is determined whether an error of the memory block is a physical defect or a defect caused from stress based on the read history of the flash memory(S320). The memory block is managed by processing the memory block into a bad block or using the memory block for a restricted purpose depending on a determination result(S330).

Description

메모리 기반 저장 장치 및 그것의 블록 관리 기법{MEMORY-BASED STORAGE DEVICE AND BLOCK MANAGIN TECHNIQUE THEREOF}MEMORY-BASED STORAGE DEVICE AND BLOCK MANAGIN TECHNIQUE THEREOF

본 발명은 저장 장치에 관한 것으로, 좀 더 구체적으로는 메모리를 기반으로 한 저장 장치에 관한 것이다.The present invention relates to a storage device, and more particularly to a storage device based on a memory.

에러 검출 및 정정 기술들은 다양한 원인들로 인해 손상되는 데이터의 효율적인 복구를 제공한다. 예를 들면, 메모리에 데이터를 저장하는 과정에서 다양한 원인들로 인해서 데이터가 손상될 수 있고, 소오스에서 목적지로 데이터가 전송되는 데이터 전송 채널의 불안(perturbations)에 의해서 데이터가 손상될 수 있다. 손상된 데이터를 검출하고 보정하기 위해서 다양한 방법들이 제안되어 오고 있다. 잘 알려진 에러 검출 기술들은 RS 코드(Reed-Solomon code), 헤밍 코드(Hamming code), BCH(Bose-Chaudhuri-Hocquenghem) 코드, CRC(Cyclic Redundancy Code) 코드 등이 있다. 이러한 코드들을 이용하여 손상된 데이터를 발견하고 보정하는 것이 가능하다. 불 휘발성 메모리 장치가 사용되는 대부분의 응용 분야에 있어서, 데이터는 오류정정코드(error correcting code: ECC)라 불리는 값 (이하, ECC 데이터라 칭함)과 함께 플래시 메모리 장치에 저장된다. ECC 데이터는 플래시 메모리 장치의 읽기 동작시 발생하는 에러를 정정하기 위한 것으로, ECC 데이터를 이용하여 정정 가능한 에러 비트 수는 제한되어 있다. 읽기 동작시 생기는 비트 에러는 잘 알려진 블록 대체(block replacement)와 같은 별도의 구제 과정없이 에러 검출 및 정정 기술을 통해 정정될 수 있다. 이에 반해서, 읽기 동작시 생기는 비트 에러가 정정 불가능한 경우, 비트 에러를 포함한 메모리 블록에 저장된 데이터는 소실될 것이다.Error detection and correction techniques provide for efficient recovery of data that is corrupted due to various causes. For example, in the process of storing data in memory, data may be damaged due to various causes, and data may be damaged by perturbations of the data transmission channel through which data is transmitted from a source to a destination. Various methods have been proposed to detect and correct damaged data. Well-known error detection techniques include RS code (Reed-Solomon code), Hemming code (Hmming code), Bose-Chaudhuri-Hocquenghem (BCH) code, Cyclic Redundancy Code (CRC) code, and the like. Using these codes it is possible to find and correct corrupted data. In most applications where nonvolatile memory devices are used, data is stored in a flash memory device along with a value called error correcting code (ECC) (hereinafter referred to as ECC data). The ECC data is for correcting an error occurring during a read operation of the flash memory device, and the number of error bits that can be corrected using the ECC data is limited. Bit errors that occur during read operations can be corrected through error detection and correction techniques without additional remedies such as well known block replacement. In contrast, if a bit error occurring during a read operation is not correctable, data stored in the memory block including the bit error will be lost.

본 발명의 목적은 신뢰성을 향상시킬 수 있는 메모리 기반 저장 장치 및 그것의 블록 관리 기법을 제공하는 것이다.It is an object of the present invention to provide a memory based storage device and a block management technique thereof that can improve reliability.

본 발명의 예시적인 실시예들은 플래시 메모리를 포함하는 메모리 기반 저장 장치의 블록 관리 방법을 제공하며, 이 블록 관리 방법은 상기 플래시 메모리의 읽기 이력에 의거하여 메모리 블록의 에러가 물리적인 결함에 의한 것인 지 또는 스트레스에 기인한 결함에 의한 것인 지의 여부를 판별하는 단계와; 그리고 상기 판별 결과에 따라 배드 블록으로 처리되도록 또는 제한된 용도로 사용되도록 상기 메모리 블록을 관리하는 단계를 포함한다.Exemplary embodiments of the present invention provide a block management method of a memory-based storage device including a flash memory, in which the error of the memory block is caused by a physical defect based on a read history of the flash memory. Determining whether it is due to a defect due to knowledge or stress; And managing the memory block to be treated as a bad block or to be used for a limited purpose according to the determination result.

본 발명의 다른 예시적인 실시예들은 플래시 메모리와; 그리고 상기 플래시 메모리를 관리하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 제어기는 상기 플래시 메모리의 읽기 이력에 의거하여 상기 플래시 메모리의 메모리 블록들을 관리하는 메모리 기반 저장 장치를 제공한다.Other exemplary embodiments of the present invention include a flash memory; And a memory controller configured to manage the flash memory, wherein the memory controller provides a memory-based storage device that manages memory blocks of the flash memory based on a read history of the flash memory.

본 발명에 의하면, 메모리 기반 저장 장치의 신뢰성이 향상될 것이다.According to the present invention, the reliability of the memory-based storage device will be improved.

앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.It is to be understood that both the foregoing general description and the following detailed description are exemplary, and that additional explanations of the claimed invention are provided.

참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.Reference numerals are shown in detail in preferred embodiments of the invention, examples of which are shown in the reference figures. In any case, like reference numerals are used in the description and the drawings to refer to the same or like parts.

아래에서, 메모리 시스템이 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.In the following, a memory system is used as an example for explaining the features and functions of the present invention. However, one of ordinary skill in the art will readily appreciate the other advantages and performances of the present invention in accordance with the teachings herein. The present invention may be implemented or applied through other embodiments as well. In addition, the detailed description may be modified or changed according to aspects and applications without departing from the scope, technical spirit and other objects of the present invention.

도 1은 본 발명의 예시적인 실시예들에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이며, 도 2는 본 발명의 예시적인 실시예들에 따른 도 1에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다.1 is a block diagram schematically illustrating a computing system according to example embodiments of the present invention, and FIG. 2 is a block diagram schematically illustrating the memory controller shown in FIG. 1 according to example embodiments of the present invention. .

도 1을 참조하면, 본 발명의 예시적인 실시예들에 따른 컴퓨팅 시스템은 호스트(100)와 메모리 기반 저장 장치(memory-based storage device)(200)를 포함할 것이다. 메모리 기반 저장 장치(200)는 호스트(100)의 요청에 따라 데이터를 저장 하거나 저장된 데이터를 출력할 것이다. 메모리 기반 저장 장치(200)는 SATA(serial AT attachment) 인터페이스, PATA(parallel AT attachment) 인터페이스, USB 인터페이스, SCSI 인터페이스, ESDI 인터페이스, IDE 인터페이스, MMC 인터페이스, SD 인터페이스, 또는 그와 같은 것을 통해 호스트(100)와 연결될 것이다. 하지만, 호스트(100)와 메모리 기반 저장 장치(200) 사이의 인터페이스가 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 호스트(100)와 메모리 기반 저장 장치(200)는 SATA(serial AT attachment) 인터페이스, PATA(parallel AT attachment) 인터페이스, USB 인터페이스, SCSI 인터페이스, ESDI 인터페이스, IDE 인터페이스, MMC 인터페이스, SD 인터페이스, 그리고 그와 같은 것 중 적어도 2개의 인터페이스들을 통해 통신할 수도 있다.Referring to FIG. 1, a computing system in accordance with example embodiments of the present invention will include a host 100 and a memory-based storage device 200. The memory-based storage device 200 may store data or output stored data according to a request of the host 100. The memory-based storage device 200 may be connected to a host through a serial AT attachment (SATA) interface, parallel AT attachment (PATA) interface, USB interface, SCSI interface, ESDI interface, IDE interface, MMC interface, SD interface, or the like. 100). However, it is apparent to those skilled in the art that the interface between the host 100 and the memory-based storage device 200 is not limited to those disclosed herein. For example, the host 100 and the memory-based storage device 200 may include a serial AT attachment (SATA) interface, a parallel AT attachment (PATA) interface, a USB interface, a SCSI interface, an ESDI interface, an IDE interface, an MMC interface, and an SD interface. And may communicate over at least two of the same.

메모리 기반 저장 장치(200)는 메모리 제어기(220)와 저장 매체(240)를 포함할 것이다. 본 발명의 예시적인 실시예에 있어서, 저장 매체(240)는 플래시 메모리들로 구성될 것이다. 하지만, 저장 매체(240)가 플래시 메모리에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 상 변화 메모리, 자기 저항 메모리, 등과 같은 불 휘발성 메모리들이 저장 매체(240)로서 사용될 수도 있다. 설명의 편의상, 저장 매체(240)가 단지 하나의 플래시 메모리로 구현된 실시예가 도 1에 도시되어 있다. 메모리 제어기(220)는, 도 2에 도시된 바와 같이, 호스트 인터페이스(222), 플래시 인터페이스(223), 프로세싱 유니트(224), 버퍼 메모리(225), 그리고 에러 검사 정정(ECC) 회로(226)를 포함하며, 이러한 구 성들은 이 분야의 통상적인 지식을 습득한 자들에게 잘 알려져 있다.The memory based storage device 200 may include a memory controller 220 and a storage medium 240. In an exemplary embodiment of the invention, the storage medium 240 will be comprised of flash memories. However, the storage medium 240 is not limited to the flash memory, it will be apparent to those of ordinary skill in the art. For example, nonvolatile memories such as phase change memory, magnetoresistive memory, and the like may be used as the storage medium 240. For convenience of description, an embodiment in which the storage medium 240 is implemented with only one flash memory is shown in FIG. 1. The memory controller 220 includes a host interface 222, a flash interface 223, a processing unit 224, a buffer memory 225, and an error check correction (ECC) circuit 226, as shown in FIG. 2. These configurations are well known to those who have acquired common knowledge in this area.

메모리 기반 저장 장치(200)에 있어서, 메모리 제어기(220)는 플래시 메모리(240)를 관리하도록 구성될 것이다. 예를 들면, 메모리 제어기(220)는 메모리 기반 저장 장치(200)의 신뢰성을 향상시키기 위해서 플래시 메모리(240)의 읽기 이력(read history)을 관리할 것이다. 읽기 이력은 에러 비트 수, 에러 비트 위치, 플레인 정보, 다이 정보, 리프레쉬 정보, 등을 포함할 것이다. 메모리 제어기(220)는 읽기 이력에 근거하여 플래시 메모리(240)의 메모리 블록들을 관리할 것이다. 예를 들면, 메모리 제어기(220)는 읽기 이력에 근거하여 배드 블록으로 또는 제한된 용도의 메모리 블록으로 처리되도록 플래시 메모리(240)의 메모리 블록들을 관리할 것이다.In the memory based storage device 200, the memory controller 220 may be configured to manage the flash memory 240. For example, the memory controller 220 may manage the read history of the flash memory 240 to improve the reliability of the memory-based storage device 200. The read history may include the number of error bits, error bit position, plane information, die information, refresh information, and the like. The memory controller 220 may manage memory blocks of the flash memory 240 based on the read history. For example, the memory controller 220 may manage the memory blocks of the flash memory 240 to be treated as a bad block or a limited purpose memory block based on the read history.

본 발명에 따른 메모리 기반 저장 장치(200)는 읽기 동작이 수행될 때 관찰되는 특성들(예를 들면, 에러 비트 수, 에러 비트 위치, 플레인 정보, 다이 정보, 리프레쉬 정보, 등)에 대한 읽기 이력 정보를 기록하고, 이 읽기 이력 정보를 기반으로 향후 문제 유발 가능성이 높은 메모리 블록을 위험 블록으로 판정하며, 위험 블록을 일반 블록과 다른 그룹으로 관리함으로써 향후 메모리 기반 저장 장치(200)의 운용시 위험 블록의 활용 용도를 제약할 것이다. 이러한 관리 기법을 통해 메모리 기반 저장 장치(200)의 신뢰성을 향상시키는 것이 가능하다.The memory-based storage device 200 according to the present invention has a read history of characteristics (eg, error bit number, error bit position, plane information, die information, refresh information, etc.) observed when a read operation is performed. It is possible to record information, determine memory blocks that are more likely to cause problems in the future as dangerous blocks based on the read history information, and manage risk blocks in a different group from general blocks, so that the risks of future operation of the memory-based storage device 200 are maintained. It will limit the use of blocks. Through such a management technique, it is possible to improve the reliability of the memory-based storage device 200.

일반적인 메모리 관리 기법에 따르면, 프로그램 또는 소거 동작의 결과값을 통해 요청된 동작의 성공 여부에 의거하여 요청된 동작의 블록을 불량 블록으로 판정하는 방식이 사용되어 오고 있다. 즉, 메모리 블록을 배드 블록으로 처리할 지의 여부는 프로그램 또는 소거 동작의 결과값에 따라 결정될 것이다. 메모리 소자의 회로 선폭(minimum feature size)이 미세화되고 대용량화되면서 메모리 소자의 신뢰성이 저하되고 있다. 이에 따라 프로그램 또는 소거 결과가 성공으로 나타난 메모리 블록에 대한 읽기 동작시 데이터 오류가 발생할 우려가 점차적으로 증가하고 있다. 더욱이 메모리 소자의 계속적인 사용으로 인해 메모리 소자의 노화(aging)가 진행됨에 따라 회로 결함(즉, 물리적인 결함)이 증가될 것이다. 즉, 진행성 결함(progressive defect)이 증가될 것이다. 이러한 경우, 그러한 회로 결함 즉, 물리적인 결함을 갖는 메모리 블록(예를 들면, '위험 블록'으로 불림)으로부터 읽혀진 데이터가 오류 정정이 불가능할 확률 역시 높아질 수도 있다.According to a general memory management technique, a method of determining a block of a requested operation as a bad block based on whether the requested operation is successful through a result of a program or erase operation has been used. That is, whether to process the memory block as a bad block will be determined according to the result of the program or erase operation. As the miniaturization of circuit features (minimum feature sizes) of memory devices and miniaturization, the reliability of memory devices is deteriorated. Accordingly, there is a growing concern that data errors may occur during a read operation on a memory block in which a program or erase result is successful. Moreover, due to the continued use of memory devices, circuit defects (ie, physical defects) will increase as the memory devices age. That is, progressive defects will increase. In such a case, the probability that the data read from such a circuit defect, i.e., a memory block having a physical defect (e.g., called a 'danger block'), is impossible to correct an error may also be increased.

따라서, 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치(200)는 메모리 블록들의 읽기 이력을 관리함으로써 위험 블록으로 인한 신뢰성의 저하를 방지할 수 있으며, 이는 이하 상세히 설명될 것이다.Therefore, the memory-based storage device 200 according to the exemplary embodiments of the present invention may prevent the degradation of reliability due to the dangerous block by managing the read history of the memory blocks, which will be described in detail below.

도 3은 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치의 읽기 절차를 설명하기 위한 흐름도이다. 이하, 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치의 읽기 절차가 참조 도면들에 의거하여 상세히 설명될 것이다.3 is a flowchart illustrating a read procedure of a memory-based storage device according to example embodiments. Hereinafter, a read procedure of a memory-based storage device according to exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

호스트(100)로부터 읽기 동작이 요청되면, 메모리 제어기(220)는 저장 매체(storage medium)로서 플래시 메모리(240)로부터 데이터를 읽는다(S100). 잘 알려진 바와 같이, 읽혀진 데이터는 메모리 제어기(220)의 버퍼 메모리(225)에 임시 저장될 것이다. 이와 동시에, 메모리 제어기(220)는 에러 검사 및 정정 회로(226) 를 통해 읽혀진 데이터로부터 에러가 발생하였는 지의 여부를 검사할 것이다(S110). 만약 읽혀진 데이터로부터 에러가 발생하지 않은 것으로 판별되면, 절차는 S130 단계로 진행할 것이다. 이에 반해서, 만약 읽혀진 데이터로부터 에러가 발생한 것으로 판별되면, 절차는 S120 단계로 진행할 것이다. S120 단계에서, 메모리 제어기(220)는 에러 검사 및 정정 회로(226)를 통해 읽혀진 데이터의 에러를 정정할 것이다. 게다가, 메모리 제어기(220)는 데이터가 읽혀진 메모리 블록에 대한 에러 이력 즉, 읽기 이력을 갱신할 것이다. 이후, 절차는 S130 단계로 진행할 것이다. S130 단계에서, 읽혀진 데이터는 외부 장치 즉, 호스트(100)로 전송될 것이다(S130).When a read operation is requested from the host 100, the memory controller 220 reads data from the flash memory 240 as a storage medium (S100). As is well known, the read data will be temporarily stored in the buffer memory 225 of the memory controller 220. At the same time, the memory controller 220 will check whether an error has occurred from the data read through the error checking and correction circuit 226 (S110). If it is determined that no error has occurred from the read data, the procedure goes to step S130. In contrast, if it is determined that an error has occurred from the read data, the procedure will proceed to step S120. In operation S120, the memory controller 220 may correct an error of data read through the error checking and correction circuit 226. In addition, the memory controller 220 may update the error history, that is, the read history, for the memory block from which data is read. Thereafter, the procedure will proceed to step S130. In operation S130, the read data may be transmitted to the external device, that is, the host 100 in operation S130.

여기서, 본 발명에 따른 메모리 기반 저장 장치(200)의 메모리 제어기(220)는, 도 1에 도시된 바와 같이, 읽기 이력 정보를 관리하는 테이블(이하, '읽기 이력 테이블'이라 불림) (221)을 포함할 것이다. 읽기 이력 테이블(221)에는 에러 비트 수, 에러 비트 위치, 플레인 정보, 등과 같은 에러 이력이 저장될 것이다. 그러한 읽기 이력 테이블(221)은 버퍼 메모리(225)에 저장될 것이다. 읽기 이력 테이블(221)은 파워-업시 플래시 메모리(240)에서 버퍼 메모리(225)로 로드되고, 필요시 플래시 메모리(240)에 백업/재저장될 것이다.Here, the memory controller 220 of the memory-based storage device 200 according to the present invention, as shown in Figure 1, a table for managing the read history information (hereinafter referred to as "read history table") 221 Will include. The read history table 221 may store error histories such as the number of error bits, error bit positions, plane information, and the like. Such read history table 221 will be stored in buffer memory 225. The read history table 221 is loaded from the flash memory 240 to the buffer memory 225 at power-up and will be backed up / restored to the flash memory 240 as needed.

도 4는 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치(200)의 블록 관리 기법을 설명하기 위한 흐름도이고, 도 5는 본 발명의 예시적인 실시예들에 따른 리프레쉬 동작을 개념적으로 보여주는 도면이다.4 is a flowchart illustrating a block management scheme of a memory-based storage device 200 according to exemplary embodiments of the present invention, and FIG. 5 conceptually illustrates a refresh operation according to exemplary embodiments of the present invention. Drawing.

설명에 앞서, 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장 치(200)는 읽기 이력을 근거로 하여 메모리 블록을 리프레쉬하도록 구성될 것이다. 예를 들면, 메모리 제어기(220)는 테이블(221)의 읽기 이력 정보(예를 들면, 에러 비트 수)를 분석하여 메모리 블록의 리프레쉬 동작을 제어할 것이다. 좀 더 구체적으로 설명하면, S200 단계에서, 메모리 제어기(220)는 읽기 이력 테이블(221)의 읽기 이력을 가져올 것이다. 그 다음에, S210 단계에서, 메모리 제어기(220)는 읽혀진 읽기 이력에 의거하여 임의의 메모리 블록에서 생긴 에러 비트 수가 특정 에러 비트 수(또는, 기준 에러 비트 수)를 초과하는 지의 여부를 판별할 것이다. 즉, 메모리 제어기(220)는 검사 결과에 따라 리프레쉬될 메모리 블록(들)이 존재하는 지의 여부를 판별할 것이다. 만약 리프레쉬될 메모리 블록(들)이 존재하지 않는 것으로 판별되면, 절차는 종료될 것이다. 만약 리프레쉬될 메모리 블록(들)이 존재하는 것으로 판별되면, 절차는 S220 단계로 진행할 것이다.Prior to the description, the memory-based storage device 200 according to exemplary embodiments of the present invention will be configured to refresh the memory block based on the read history. For example, the memory controller 220 may analyze the read history information (for example, the number of error bits) of the table 221 to control the refresh operation of the memory block. More specifically, in operation S200, the memory controller 220 may bring a read history of the read history table 221. Next, in step S210, the memory controller 220 may determine whether the number of error bits generated in any memory block exceeds a specific error bit number (or reference error bit number) based on the read history read. . That is, the memory controller 220 will determine whether there is a memory block (s) to be refreshed according to the test result. If it is determined that there is no memory block (s) to be refreshed, the procedure will end. If it is determined that there is a memory block (s) to be refreshed, the procedure will proceed to step S220.

S220 단계에서, 메모리 제어기(220)는 검사된 메모리 블록들이 리프레쉬되도록 플래시 메모리(240)를 제어할 것이다. 좀 더 구체적인 설명은 도 5를 참조하여 행해질 것이다. 먼저, 도 5에 도시된 바와 같이, 리프레쉬될 메모리 블록의 데이터는 프리 블록으로 복사될 것이다(1001). 그 다음에, 리프레쉬될 메모리 블록이 소거될 것이다(1002). 마지막으로, 프리 블록에 저장된 데이터는 메모리 블록으로 복사될 것이다(1003). 메모리 블록은 상술한 과정들을 통해 리프레쉬될 것이다. 이후, 프리 블록은 소거될 것이다.In operation S220, the memory controller 220 may control the flash memory 240 to refresh the checked memory blocks. A more detailed description will be made with reference to FIG. 5. First, as shown in FIG. 5, the data of the memory block to be refreshed will be copied to the free block (1001). The memory block to be refreshed will then be erased (1002). Finally, the data stored in the free block will be copied to the memory block (1003). The memory block will be refreshed through the above-described processes. The free block will then be erased.

에러 비트 수가 점차적으로 증가한다는 것은 읽기 에러가 발생할 가능성이 높아짐을 의미한다. 만약 읽기 에러가 발생하면, 데이터는 소실될 것이다. 그러한 까닭에, 메모리 블록의 에러 비트 수가 기준 에러 비트 수를 초과하는 지의 여부에 따라 메모리 블록을 리프레쉬함으로써 데이터의 소실을 방지할 수 있다. 반복적인 읽기 과정으로 인해 메모리 셀들이 스트레스를 받기 때문에, 에러 비트 수는 증가될 수 있다. 다시 말해서, 읽기/프로그램/소거 스트레스로 인해 읽기 에러가 야기될 수 있다. 이하, 스트레스로 인한 읽기 에러를 '스트레스에 기인한 결함' (stress-based defect)이라 칭한다. 따라서, 스트레스에 기인한 결함은 메모리 블록을 리프레쉬함으로써 해결될 수 있다. 결과적으로, 스트레스에 기인한 결함으로 인한 읽기 에러를 줄임으로써 메모리 기반 저장 장치(200)의 신뢰성을 향상시키는 것이 가능하다.The gradual increase in the number of error bits means that read errors are more likely to occur. If a read error occurs, the data will be lost. Therefore, the loss of data can be prevented by refreshing the memory block depending on whether the number of error bits of the memory block exceeds the reference error bit number. Since the memory cells are stressed by the repetitive read process, the number of error bits can be increased. In other words, read / program / erase stresses can cause read errors. Hereinafter, the reading error due to stress is referred to as a 'stress-based defect'. Thus, a defect due to stress can be solved by refreshing the memory block. As a result, it is possible to improve the reliability of the memory-based storage device 200 by reducing read errors due to defects caused by stress.

도 6은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법을 설명하기 위한 흐름도이다. 이하, 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법이 참조 도면들에 의거하여 상세히 설명될 것이다.FIG. 6 is a flowchart for describing a block management scheme of a memory-based storage device, according to another exemplary embodiment. Referring to FIG. Hereinafter, a block management scheme of a memory-based storage device according to other exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

메모리 제어기(220)는 버퍼 메모리(225)의 읽기 이력 테이블(221)로부터 읽기 이력을 가져올 것이다(S300). 메모리 제어기(220)는 읽혀진 읽기 이력을 의거하여 리프레쉬된 메모리 블록이 존재하는 지의 여부를 판별할 것이다(S310). 만약 리프레쉬된 메모리 블록이 존재하지 않는 것으로 판별되면, 절차는 종료될 것이다. 만약 리프레쉬된 메모리 블록이 존재하는 것으로 판별되면, 절차는 S320 단계로 진행할 것이다.The memory controller 220 may obtain a read history from the read history table 221 of the buffer memory 225 (S300). The memory controller 220 may determine whether there is a refreshed memory block based on the read read history (S310). If it is determined that there is no refreshed memory block, the procedure will end. If it is determined that there is a refreshed memory block, the procedure will proceed to step S320.

S320 단계에서, 메모리 제어기(220)는 리프레쉬된 메모리 블록에 대한 읽기 이력에 의거하여 메모리 블록의 이전에 발생된 에러가 물리적인 결함에 의한 것인 지 또는 스트레스에 기인한 결함에 의한 것인 지의 여부를 판별할 것이다. 스트레스에 기인한 결함은, 앞서 설명된 바와 같이, 리프레쉬 동작을 통해 해소될 수 있다. 이에 반해서, 만약 리프레쉬된 메모리 블록의 이전에 발생된 에러가 물리적인 결함(예를 들면, 진행성 결함)으로 인한 것으로 판별되면, 절차는 S330 단계로 진행할 것이다. S330 단계에서, 메모리 제어기(220)는 물리적인 결함을 갖는 메모리 블록(들)의 용도가 제한되도록 메모리 블록(들)에 대한 사상을 관리할 것이다. 이후 절차는 종료될 것이다.In operation S320, the memory controller 220 determines whether a previously generated error of the memory block is due to a physical defect or a defect due to stress based on a read history of the refreshed memory block. Will be determined. Defects due to stress can be resolved through the refresh operation, as described above. In contrast, if it is determined that the previously generated error of the refreshed memory block is due to a physical defect (eg, a progressive defect), the procedure will proceed to step S330. In operation S330, the memory controller 220 manages the mapping of the memory block (s) such that the use of the memory block (s) having a physical defect is limited. The procedure will then end.

예시적인 실시예에 있어서, 리프레쉬된 메모리 블록이 물리적 결함을 갖는 메모리 블록인 지의 여부는 리프레쉬 횟수를 기준으로 판별될 수 있다. 예를 들면, 일회 이상 리프레쉬된 메모리 블록은 물리적 결함을 갖는 메모리 블록으로 판별될 수 있다.In an exemplary embodiment, whether the refreshed memory block is a memory block having a physical defect may be determined based on the number of refreshes. For example, a memory block refreshed one or more times may be determined as a memory block having a physical defect.

앞서 언급된 바와 같이, 메모리 블록은 스트레스에 기인한 결함으로 인해 에러가 계속해서 발생된다는 가정하에서 리프레쉬된다. 하지만, 읽기 이력 정보 중 에러 이력을 고려하여 볼 때 스트레스에 기인한 결함으로 인한 것이 아니라 진행성 결함으로 인해 에러가 계속해서 발생될 수 있다. 만약 메모리 블록이 에러가 스트레스에 기인한 결함이 아니라 진행성 결함에 의한 것임에도 불구하고 리프레쉬되면, 향후 그러한 메모리 블록에 저장된 데이터는 모두 소실될 수 있다. 즉, 메모리 블록에 저장된 데이터를 복구하는 것은 불가능하다. 따라서, 본 발명에 따른 블록 관리 기법에 의하면, 물리적인 결함을 갖는 것으로 결정된 메모리 블록(들)은 미리 위험 블록으로 분류된다. 그러한 위험 블록은 배드 블록으로 처리되거나 정상 블록과 다른 용도를 사용하도록 처리될 것이다. 예를 들면, 본 발명에 따른 메모리 기반 저장 장치(200)가 M-비트 데이터를 저장한다고 가정하면, 그러한 위험 블록은 N-비트 데이터(M<N)를 저장하는 데 사용될 수 있다. 또는, 그러한 위험 블록에 대한 읽기, 소거, 그리고 프로그램 동작들은 제한될 것이다. 에러 이력에 따라 특정 블록과 회로적으로 그리고 물리적으로 연관성이 높은 메모리 블록들 역시 위험 블록으로 처리될 수도 있다.As mentioned above, the memory blocks are refreshed under the assumption that errors continue to occur due to defects due to stress. However, in consideration of the error history of the read history information, the error may continue to occur due to the progressive defect rather than the defect due to the stress. If a memory block is refreshed even though the error is due to a progressive defect rather than a stress caused defect, all data stored in such a memory block may be lost in the future. That is, it is impossible to recover data stored in the memory block. Therefore, according to the block management scheme according to the present invention, the memory block (s) determined to have a physical defect is classified as a dangerous block in advance. Such dangerous blocks may be treated as bad blocks or to be used for purposes other than normal blocks. For example, assuming that the memory-based storage device 200 according to the present invention stores M-bit data, such dangerous blocks can be used to store N-bit data M <N. Or, read, erase, and program operations on such dangerous blocks will be limited. Depending on the error history, memory blocks that are circuitally and physically related to a particular block may also be treated as dangerous blocks.

도 7은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법을 설명하기 위한 흐름도이다. 도 7에 도시된 블록 관리 기법은 도 6의 판별 동작(S310 단계)이 제거되었다는 점을 제외하면 도 6에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 판별 동작(S310 단계)이 제거되었음은 위험 블록이 리프레쉬된 메모리 블록을 기준으로 분류되지 않음을 의미한다. 다시 말해서, 읽기/에러 이력을 기준으로 메모리 블록의 이전에 발생한 에러가 진행성 결함(즉, 물리적인 결함)에 의한 것인 지 아니면 스트레스에 기인한 결함에 의한 것의 여부에 따라 위험 블록을 분류하는 것이 가능하다.7 is a flowchart illustrating a block management scheme of a memory-based storage device according to another exemplary embodiment of the present invention. The block management scheme shown in FIG. 7 is substantially the same as that shown in FIG. 6 except that the determination operation (step S310) of FIG. 6 is eliminated, and a description thereof will therefore be omitted. The removal of the determination operation (step S310) means that the dangerous block is not classified based on the refreshed memory block. In other words, classifying risk blocks based on read / error histories is based on whether a previously encountered error in the memory block is due to a progressive defect (i.e., a physical defect) or a defect due to stress. It is possible.

본 발명의 예시적인 실시예들에 있어서, 진행성 결함(또는, 물리적인 결함)은 플래시 메모리의 테스트 결과를 토대로 준비되는 에러 패턴들을 기준으로 판별될 수 있다. 또는, 진행성 결함(또는, 물리적인 결함)은, 예를 들면, 리프레쉬된 메모리 블록으로부터 반복적으로 에러가 발생되는 현상을 포함하는 에러 이력을 기준으로 판별될 수 있다.In exemplary embodiments of the present invention, a progressive defect (or a physical defect) may be determined based on error patterns prepared based on a test result of a flash memory. Alternatively, the progressive defect (or the physical defect) may be determined based on an error history including, for example, a phenomenon in which an error is repeatedly generated from the refreshed memory block.

본 발명의 예시적인 실시예들에 있어서, 읽기 이력에 근거하여 메모리 블록을 위험 블록 즉, 물리적 결함을 갖는 메모리 블록으로 판별하는 것이 가능하다. 예를 들면, 도 7의 흐름도를 참조하면, 메모리 제어기(220)는 버퍼 메모리(225)의 읽기 이력 테이블(221)로부터 읽기 이력을 가져오고(S400), 읽기 이력에 의거하여 메모리 블록이 물리적 결함을 갖는 지의 여부를 판별하고(S410), 판별 결과에 따라 물리적 결함을 갖는 메모리 블록을 위험 블록으로 처리할 것이다(S420).In exemplary embodiments of the present invention, it is possible to determine a memory block as a dangerous block, that is, a memory block having a physical defect, based on the read history. For example, referring to the flowchart of FIG. 7, the memory controller 220 obtains a read history from the read history table 221 of the buffer memory 225 (S400), and the memory block is physically defective based on the read history. In step S410, the memory block having the physical defect is treated as a dangerous block according to the determination result (S420).

본 발명의 블록 관리 기법의 경우, 메모리 블록에 대한 리프레쉬 동작이 선행되지 않을 수도 있다.In the block management scheme of the present invention, a refresh operation on a memory block may not be preceded.

플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 불 휘발성 메모리 장치이다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용된다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다. 본 발명에 따른 메모리 시스템을 포함한 컴퓨팅 시스템이 도 8에 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템은 버스(2001)에 전기적으로 연결된 마이크로프로세서(2100), 사용자 인터페이스(2200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(2300), 메모리 제어기(2400), 그리고 플래시 메모리 장치(2500)를 포함한다. 메모리 제어기(2400)는 도 1에 도시된 메모리 제어기에 대응하며, 플래시 메모리 장치(2500)는 도 1에 도시된 것과 실질적으로 동일하게 구성될 것이다. 플래시 메모리 장치(2500)에는 마이크로프로세서(2100)에 의해 서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(2400)를 통해 저장될 것이다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(2600)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 제어기(2400)와 플래시 메모리 장치(2500)는, 예를 들면, 데이터를 저장하는 데 불 휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 예시적인 SSD가 미국특허공개번호 제2006-0152981호에 게재되어 있으며, 이 분야의 레퍼런스로 포함된다. 또는, 메모리 제어기(2400)와 플래시 메모리 장치(2500)는 데이터를 저장하는 데 불 휘발성 메모리를 메모리 카드를 구성할 수 있다.Flash memory devices are nonvolatile memory devices capable of retaining stored data even when power is cut off. With the growing use of mobile devices such as cellular phones, PDA digital cameras, portable game consoles, and MP3Ps, flash memory devices are becoming more widely used as code storage as well as data storage. Flash memory devices can also be used for home applications such as HDTV, DVD, routers, and GPS. A computing system including a memory system according to the present invention is schematically illustrated in FIG. 8. The computing system according to the present invention includes a microprocessor 2100 electrically connected to a bus 2001, a user interface 2200, a modem 2300 such as a baseband chipset, a memory controller 2400, and a flash memory. Device 2500. The memory controller 2400 corresponds to the memory controller shown in FIG. 1, and the flash memory device 2500 may be configured substantially the same as that shown in FIG. 1. The flash memory device 2500 may store, via the memory controller 2400, N-bit data (N is an integer greater than or equal to 1) to be processed / processed by the microprocessor 2100. When the computing system according to the present invention is a mobile device, a battery 2600 for supplying an operating voltage of the computing system will be further provided. Although not shown in the drawings, the computing system according to the present invention may further be provided with an application chipset, a camera image processor (CIS), a mobile DRAM, and the like. Self-explanatory to those who have learned. The memory controller 2400 and the flash memory device 2500 may configure, for example, an SSD (Solid State Drive / Disk) that uses a nonvolatile memory to store data. Exemplary SSDs are disclosed in US Patent Publication No. 2006-0152981, incorporated by reference in this field. Alternatively, the memory controller 2400 and the flash memory device 2500 may configure a memory card as a nonvolatile memory for storing data.

도 9는 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 보여주는 블록도이다.9 is a block diagram illustrating a memory based storage device according to other example embodiments of the inventive concepts.

도 9에 도시된 메모리 기반 저장 장치는 메모리(3510)와 메모리 제어기(3520)가 카드(3530)를 구성하도록 구현된다. 예를 들면, 카드(3530)는 플래시 메모리 카드와 같은 메모리 카드일 수 있다. 즉, 카드(3530)는 디지털, 카메라, 개인 컴퓨터 등과 같은 전자 장치를 사용하기 위한 어떤 산업 표준을 만족하는 카드일 수 있다. 메모리 제어기(3520)가 카드(3530)에 의해 또 다른 (예를 들면, 외부) 장치로부터 수신된 제어 신호들에 기초하여 메모리(3510)를 제어할 수 있다는 것이 이해될 것이다.The memory-based storage device illustrated in FIG. 9 is implemented such that the memory 3510 and the memory controller 3520 constitute a card 3530. For example, the card 3530 may be a memory card such as a flash memory card. That is, the card 3530 may be a card that meets certain industry standards for using electronic devices such as digital devices, cameras, personal computers, and the like. It will be appreciated that the memory controller 3520 may control the memory 3510 based on control signals received from another (eg, external) device by the card 3530.

도 10은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 포함한 메모리 시스템을 보여주는 블록도이다.10 is a block diagram illustrating a memory system including a memory based storage device according to other example embodiments of the inventive concepts.

도 10에 도시된 시스템은 휴대용 장치(4000)를 나타낸다. 휴대용 장치(4000)는 MP3 플레이어, 비디오 플레이어, 콤비네이션 비디오 및 오디오 플레이어 등일 수 있다. 도시된 바와 같이, 휴대용 장치(4000)는 메모리(3510) 및 메모리 제어기(3520)를 포함한다. 휴대용 장치(4000)는 또한 인코더 및 디코더(4610), 프리젠테이션 구성요소들(4620) 및 인터페이스(4630)를 포함할 수 있다. The system shown in FIG. 10 represents a portable device 4000. The portable device 4000 may be an MP3 player, a video player, a combination video and audio player, and the like. As shown, portable device 4000 includes a memory 3510 and a memory controller 3520. Portable device 4000 may also include encoder and decoder 4610, presentation components 4620, and interface 4630.

인코더 및 디코더(EDC)(4610)에 의해 처리된 데이터(비디오, 오디오, 등)는 메모리 제어기(3520)를 통해 메모리(3510)로 입력되고 메모리(3510)로부터 출력될 수 있다. 도 9에서 점선들에 의해 도시된 바와 같이, 데이터는 EDC(4610)로부터 메모리(3510)로 직접 입력되고 그리고/또는 메모리(3510)로부터 EDC(4610)로 직접 출력될 수 있다.Data processed by the encoder and decoder (EDC) 4610 (video, audio, etc.) may be input to and output from the memory 3510 through the memory controller 3520. As shown by the dashed lines in FIG. 9, data may be input directly from the EDC 4610 into the memory 3510 and / or output directly from the memory 3510 to the EDC 4610.

EDC(4610)는 메모리(3510)에 저장하기 위해 데이터를 인코딩할 수 있다. 예를 들면, EDC(4610)는 메모리(3510)에 저장하기 위해 오디오 데이터에 대해 MP3 인코딩을 수행할 수 있다. 다른 방법으로, EDC(4610)는 메모리(3510)에 저장하기 위해 비디오 데이터에 대해 MPEG 인코딩(예를 들면, MPEG2, MPEG4, 등)을 수행할 수 있다. 또한, EDC(4610)는 다른 데이터 포맷들에 따라 다른 타입들의 데이터를 인코딩하기 위한 복수의 인코더들을 포함할 수 있다. 예를 들면, EDC(4610)는 오디오 데이터를 위한 MP3 인코더 및 비디오 데이터를 위한 MPEG 인코더를 포함할 수 있 다.EDC 4610 may encode data for storage in memory 3510. For example, the EDC 4610 may perform MP3 encoding on the audio data for storage in the memory 3510. Alternatively, the EDC 4610 may perform MPEG encoding (eg, MPEG2, MPEG4, etc.) on the video data for storage in the memory 3510. In addition, the EDC 4610 may include a plurality of encoders for encoding different types of data according to different data formats. For example, the EDC 4610 may include an MP3 encoder for audio data and an MPEG encoder for video data.

EDC(4610)는 메모리(3510)로부터의 출력을 디코딩할 수 있다. 예를 들면, EDC(4610)는 메모리(3510)로부터 출력된 오디오 데이터에 대해 MP3 디코딩을 수행할 수 있다. 다른 방법으로, EDC(4610)는 메모리(3510)로부터 출력된 비디오 데이터에 대해 MPEG 디코딩(예를 들면, MPEG2, MPEG4, 등)을 수행할 수 있다. 또한, EDC(4610)는 다른 데이터 포맷들에 따라 다른 타입들의 데이터를 디코딩하기 위한 복수의 디코더들을 포함할 수 있다. 예를 들면, EDC(4610)는 오디오 데이터를 위한 MP3 디코더 및 비디오 데이터를 위한 MPEG 디코더를 포함할 수 있다.EDC 4610 may decode the output from memory 3510. For example, the EDC 4610 may perform MP3 decoding on audio data output from the memory 3510. Alternatively, the EDC 4610 may perform MPEG decoding (eg, MPEG2, MPEG4, etc.) on the video data output from the memory 3510. In addition, the EDC 4610 may include a plurality of decoders for decoding different types of data according to different data formats. For example, the EDC 4610 may include an MP3 decoder for audio data and an MPEG decoder for video data.

EDC(4610)가 디코더들만을 포함할 수 있다는 것이 또한 이해될 것이다. 예를 들면, 이미 인코딩된 데이터는 EDC(4610)에 의해 수신될 수 있고 메모리 제어기(3520) 및/또는 메모리(3510)로 패스될 수 있다.It will also be appreciated that the EDC 4610 may include only decoders. For example, data that has already been encoded may be received by EDC 4610 and may be passed to memory controller 3520 and / or memory 3510.

EDC(4610)는 인터페이스(4630)를 통해 인코딩을 위한 데이터를 수신하거나 이미 인코딩된 데이터를 수신할 수 있다. 인터페이스(4630)는 알려진 표준(예를 들면, 펌웨어, USB, 등)에 따를 수 있다. 인터페이스(4630)는 또한 하나 이상의 인터페이스를 포함할 수 있다. 예를 들면, 인터페이스(4630)는 펌웨어 인터페이스, USB 인터페이스, 등을 포함할 수 있다. 메모리(3510)로부터의 데이터는 인터페이스(4630)를 통해 출력될 수도 있다.The EDC 4610 may receive data for encoding or receive data that has already been encoded via the interface 4630. The interface 4630 can be in accordance with known standards (eg, firmware, USB, etc.). The interface 4630 may also include one or more interfaces. For example, the interface 4630 may include a firmware interface, a USB interface, and the like. Data from the memory 3510 may be output via the interface 4630.

프리젠테이션 구성요소들(4620)은 메모리로부터 출력되고 그리고/또는 EDC(4610)에 의해 디코딩된 데이터를 사용자에게 표시할 수 있다. 예를 들면, 프리젠테이션 구성요소들(4620)은 오디오 데이터를 출력하기 위한 스피커 잭, 비디오 데이터를 출력하기 위한 디스플레이 스크린, 등을 포함할 수 있다.Presentation components 4620 may present data to the user that is output from memory and / or decoded by EDC 4610. For example, presentation components 4620 may include a speaker jack for outputting audio data, a display screen for outputting video data, and the like.

본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.The flash memory device and / or the memory controller according to the present invention may be mounted using various types of packages. For example, the flash memory device and / or the memory controller according to the present invention may be a package on package (PoP), ball grid arrays (BGAs), chip scale packages (CSPs), plastic leaded chip carrier (PLCC), plastic dual in- Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flatpack (TQFP), Small Outline (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline (TSOP), Thin Quad Flatpack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP), It can be implemented using packages such as Wafer-Level Processed Stack Package (WSP), or the like.

본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.It will be apparent to those skilled in the art that the structure of the present invention may be variously modified or changed without departing from the scope or spirit of the present invention. In view of the foregoing, it is believed that the present invention includes modifications and variations of this invention provided they come within the scope of the following claims and their equivalents.

도 1은 본 발명의 예시적인 실시예들에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.1 is a block diagram schematically illustrating a computing system in accordance with exemplary embodiments of the present invention.

도 2는 본 발명의 예시적인 실시예들에 따른 도 1에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다.FIG. 2 is a block diagram schematically illustrating a memory controller shown in FIG. 1 in accordance with exemplary embodiments of the present invention.

도 3은 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치의 읽기 절차를 설명하기 위한 흐름도이다.3 is a flowchart illustrating a read procedure of a memory-based storage device according to example embodiments.

도 4는 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법을 설명하기 위한 흐름도이다.4 is a flowchart for describing a block management scheme of a memory-based storage device according to example embodiments.

도 5는 본 발명의 예시적인 실시예들에 따른 리프레쉬 동작을 개념적으로 보여주는 도면이다.5 conceptually illustrates a refresh operation according to exemplary embodiments of the present invention.

도 6은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법을 설명하기 위한 흐름도이다.FIG. 6 is a flowchart for describing a block management scheme of a memory-based storage device, according to another exemplary embodiment. Referring to FIG.

도 7은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법을 설명하기 위한 흐름도이다.7 is a flowchart illustrating a block management scheme of a memory-based storage device according to another exemplary embodiment of the present invention.

도 8은 본 발명의 다른 예시적인 실시예들에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.8 is a block diagram schematically illustrating a computing system according to other exemplary embodiments of the present invention.

도 9는 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 보여주는 블록도이다.9 is a block diagram illustrating a memory based storage device according to other example embodiments of the inventive concepts.

도 10은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 포함한 메모리 시스템을 보여주는 블록도이다.10 is a block diagram illustrating a memory system including a memory based storage device according to other example embodiments of the inventive concepts.

Claims (17)

플래시 메모리를 포함하는 메모리 기반 저장 장치의 블록 관리 방법에 있어서:In a block management method of a memory-based storage device including flash memory: 상기 플래시 메모리의 읽기 이력에 의거하여 메모리 블록의 에러가 물리적인 결함에 의한 것인 지 또는 스트레스에 기인한 결함에 의한 것인 지의 여부를 판별하는 단계와; 그리고Determining whether an error of a memory block is due to a physical defect or a defect due to stress based on a read history of the flash memory; And 상기 판별 결과에 따라 배드 블록으로 처리되도록 또는 제한된 용도로 사용되도록 상기 메모리 블록을 관리하는 단계를 포함하는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.And managing the memory block to be treated as a bad block or to be used for a limited purpose according to the determination result. 제 1 항에 있어서,The method of claim 1, 상기 메모리 블록의 에러가 물리적인 결함에 의한 것으로 판별될 때, 상기 메모리 블록은 배드 블록으로 처리되거나 제한된 용도로 사용되는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.And when it is determined that the error of the memory block is due to a physical defect, the memory block is treated as a bad block or used for a limited purpose. 제 2 항에 있어서,The method of claim 2, 상기 메모리 기반 저장 장치가 M-비트 데이터를 저장하는 경우, 상기 메모리 블록의 용도는 N-비트 데이터를 저장하는 데 사용되도록 제한되는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.If the memory-based storage device stores M-bit data, the purpose of the memory block is limited to be used to store N-bit data. 제 1 항에 있어서,The method of claim 1, 상기 메모리 블록의 에러가 스트레스에 기인한 결함에 의한 것으로 판별될 때, 상기 메모리 블록은 에러 이력에 따라 리프레쉬되는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.And when it is determined that the error of the memory block is due to a defect due to stress, the memory block is refreshed according to an error history. 제 4 항에 있어서,The method of claim 4, wherein 상기 메모리 블록의 에러 비트 수가 기준 에러 비트 수를 초과하는 경우, 상기 메모리 블록은 리프레쉬되는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 기법.And if the number of error bits of the memory block exceeds a reference error bit number, the memory block is refreshed. 제 1 항에 있어서,The method of claim 1, 상기 읽기 이력은 상기 메모리 블록에 대한 에러 비트 수, 에러 비트 위치, 플레인 정보, 그리고 리프레쉬 정보를 포함하는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.And the read history includes an error bit number, an error bit position, plane information, and refresh information for the memory block. 제 1 항에 있어서,The method of claim 1, 상기 메모리 블록은 리프레쉬된 메모리 블록인 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.The memory block is a block management method of a memory-based storage device, characterized in that the refreshed memory block. 제 1 항에 있어서,The method of claim 1, 메모리 블록의 에러가 물리적인 결함에 의한 것인 지의 여부는 상기 메모리 블록의 리프레쉬 횟수를 기준으로 결정되는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.The method of claim 1, wherein the error of the memory block is determined by a physical defect based on the number of refreshes of the memory block. 플래시 메모리와; 그리고Flash memory; And 상기 플래시 메모리를 관리하도록 구성된 메모리 제어기를 포함하며,A memory controller configured to manage the flash memory; 상기 메모리 제어기는 상기 플래시 메모리의 읽기 이력에 의거하여 상기 플래시 메모리의 메모리 블록들을 관리하는 메모리 기반 저장 장치.And the memory controller manages memory blocks of the flash memory based on a read history of the flash memory. 제 9 항에 있어서,The method of claim 9, 상기 메모리 제어기는 상기 플래시 메모리의 읽기 이력에 의거하여 상기 각 메모리 블록의 에러가 물리적인 결함에 의한 것인 지 또는 스트레스에 기인한 결함에 의한 것인 지의 여부를 판별하는 메모리 기반 저장 장치.And the memory controller determines whether an error of each memory block is caused by a physical defect or a defect due to stress based on a read history of the flash memory. 제 10 항에 있어서,The method of claim 10, 상기 메모리 제어기는 상기 각 메모리 블록을 상기 판별 결과에 따라 배드 블록으로 처리하거나 제한된 용도로 사용되도록 처리하는 메모리 기반 저장 장치.The memory controller is configured to process each memory block as a bad block or to be used for a limited purpose according to the determination result. 제 11 항에 있어서,The method of claim 11, 상기 메모리 기반 저장 장치가 M-비트 데이터를 저장하는 경우, 상기 각 메모리 블록의 용도는 상기 판별 결과에 따라 N-비트 데이터를 저장하는 데 사용되도록 제한되는 메모리 기반 저장 장치.And when the memory-based storage device stores M-bit data, the purpose of each memory block is restricted to be used to store N-bit data according to the determination result. 제 10 항에 있어서,The method of claim 10, 상기 각 메모리 블록의 에러가 스트레스에 기인한 결함에 의한 것으로 판별될 때, 상기 메모리 제어기는 에러 이력에 따라 상기 각 메모리 블록을 리프레쉬하는 메모리 기반 저장 장치.And when it is determined that an error of each memory block is due to a defect due to stress, the memory controller refreshes the memory blocks according to an error history. 제 9 항에 있어서,The method of claim 9, 상기 읽기 이력은 상기 메모리 블록들에 대한 에러 비트 수, 에러 비트 위치, 플레인 정보, 그리고 리프레쉬 정보를 포함하는 메모리 기반 저장 장치.And the read history comprises an error bit number, an error bit position, plane information, and refresh information for the memory blocks. 제 9 항에 있어서,The method of claim 9, 상기 메모리 기반 저장 장치는 메모리 카드, 휴대용 저장 장치, 그리고 에스에스디 중 어느 하나인 메모리 기반 저장 장치.The memory-based storage device is any one of a memory card, a portable storage device, and the SD. 제 10 항에 있어서,The method of claim 10, 상기 각 메모리 블록의 에러가 물리적인 결함에 의한 것인 지 또는 스트레스에 기인한 결함에 의한 것인 지의 여부의 판별 동작은 상기 메모리 블록들 중 리프 레쉬된 메모리 블록들에 대해서 행해지는 메모리 기반 저장 장치.The operation of determining whether an error in each of the memory blocks is due to a physical defect or a defect due to stress is performed on the reclaimed memory blocks among the memory blocks. . 제 10 항에 있어서,The method of claim 10, 메모리 블록의 에러가 물리적인 결함에 의한 것인 지의 여부는 상기 각 메모리 블록의 리프레쉬 횟수를 기준으로 결정되는 메모리 기반 저장 장치.Whether the error of the memory block is due to a physical defect is determined based on the number of refreshes of each memory block.
KR1020080055643A 1988-06-13 2008-06-13 Memory-based storage device and block managin technique thereof KR101460240B1 (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR1020080055643A KR101460240B1 (en) 2008-06-13 2008-06-13 Memory-based storage device and block managin technique thereof
US12/457,485 US8027194B2 (en) 1988-06-13 2009-06-12 Memory system and method of accessing a semiconductor memory device
CN200910205766.2A CN101673581B (en) 2008-06-13 2009-06-15 Memory system and method of accessing a semiconductor memory device
US13/137,401 US8565021B2 (en) 2008-06-13 2011-08-11 Memory system and method of accessing a semiconductor memory device
US13/137,409 US8638585B2 (en) 2008-06-13 2011-08-12 Memory system and method of accessing a semiconductor memory device
US13/137,424 US8705272B2 (en) 2008-06-13 2011-08-15 Memory system and method of accessing a semiconductor memory device
US13/137,425 US8625344B2 (en) 2008-06-13 2011-08-15 Memory system and method of accessing a semiconductor memory device
US13/137,422 US8614919B2 (en) 2008-06-13 2011-08-15 Memory system and method of accessing a semiconductor memory device
US13/137,423 US8760918B2 (en) 2008-06-13 2011-08-15 Memory system and method of accessing a semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080055643A KR101460240B1 (en) 2008-06-13 2008-06-13 Memory-based storage device and block managin technique thereof

Publications (2)

Publication Number Publication Date
KR20090129626A true KR20090129626A (en) 2009-12-17
KR101460240B1 KR101460240B1 (en) 2014-11-21

Family

ID=41689534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080055643A KR101460240B1 (en) 1988-06-13 2008-06-13 Memory-based storage device and block managin technique thereof

Country Status (1)

Country Link
KR (1) KR101460240B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150099218A (en) * 2014-02-21 2015-08-31 삼성전자주식회사 Flash memory device and controlling method of flash memory device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200114354A (en) 2019-03-28 2020-10-07 에스케이하이닉스 주식회사 Memory system and operating method thereof
KR20210055346A (en) 2019-11-07 2021-05-17 에스케이하이닉스 주식회사 Storage device and operating method threrof

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3270367B2 (en) * 1997-09-29 2002-04-02 エヌイーシーフィールディング株式会社 Semiconductor storage device
AU2001284982A1 (en) * 2000-08-15 2002-02-25 Board Of Trustees Of The University Of Illinois Method of forming microparticles
JP4323707B2 (en) * 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 Flash memory defect management method
KR20080010965A (en) * 2006-07-28 2008-01-31 엠텍비젼 주식회사 Bad block managing device and bad block managing method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150099218A (en) * 2014-02-21 2015-08-31 삼성전자주식회사 Flash memory device and controlling method of flash memory device

Also Published As

Publication number Publication date
KR101460240B1 (en) 2014-11-21

Similar Documents

Publication Publication Date Title
KR101730510B1 (en) Non-regular parity distribution detection via metadata tag
US8122329B2 (en) Methods of operating memory devices using error correction and rereading techniques
TWI674767B (en) Turbo product codes for nand flash
US8230303B2 (en) Memory system and data processing method thereof
US8458568B2 (en) Systems and methods for memory devices
US7613982B2 (en) Data processing apparatus and method for flash memory
US9128859B1 (en) Method and apparatus for dynamically selecting an error correction code for encoding and decoding data in a communication system
US8650458B2 (en) Methods of encoding/decoding for error correction code utilizing interdependent portions of codewords and related circuits
US9037943B2 (en) Identification of non-volatile memory die for use in remedial action
US8321757B2 (en) Method and apparatus for error correction
JP2008165805A (en) Ecc (error correction code) controller for flash memory device and memory system including same
CN108463807B (en) Temperature dependent multi-mode error correction
US8533557B2 (en) Device and method for error correction and protection against data corruption
JP2008300020A (en) Reproducing device
US10009045B2 (en) Decoding method, memory controlling circuit unit and memory storage device
US8762814B2 (en) Method for enhancing error correction capability, and associated memory device and controller thereof
US10514980B2 (en) Encoding method and memory storage apparatus using the same
US9015560B1 (en) Method and apparatus for ceasing access to a portion of a flash memory when less than a number of errors correctable by an error correction code exists
JP2018520410A (en) Error correction code management for write-once memory codes
KR101460240B1 (en) Memory-based storage device and block managin technique thereof
KR20140071640A (en) Data storage device and processing method for error correction code thereof
US9954556B2 (en) Scheme to avoid miscorrection for turbo product codes
CN107590018B (en) Decoding method, memory control circuit unit and memory storage device
JP2005011386A (en) Error correction apparatus
US20240249778A1 (en) Read voltage calibration method, memory storage device, and memory control circuit unit

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 6