KR20180087494A - 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 - Google Patents

메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 Download PDF

Info

Publication number
KR20180087494A
KR20180087494A KR1020170010342A KR20170010342A KR20180087494A KR 20180087494 A KR20180087494 A KR 20180087494A KR 1020170010342 A KR1020170010342 A KR 1020170010342A KR 20170010342 A KR20170010342 A KR 20170010342A KR 20180087494 A KR20180087494 A KR 20180087494A
Authority
KR
South Korea
Prior art keywords
memory
bad
memory block
parity code
data
Prior art date
Application number
KR1020170010342A
Other languages
English (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 KR1020170010342A priority Critical patent/KR20180087494A/ko
Priority to US15/793,007 priority patent/US10740226B2/en
Priority to TW106142539A priority patent/TWI759370B/zh
Priority to CN201810053281.5A priority patent/CN108345514B/zh
Publication of KR20180087494A publication Critical patent/KR20180087494A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

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

Abstract

메모리 장치는, 다수의 노멀 메모리 블록들; 및 적어도 2개 이상의 배드 메모리 블록들을 포함하고, 상기 배드 메모리 블록들 중 제1배드 메모리 블록과 제2배드 메모리 블록에는 하나의 노멀 메모리 블록에 저장되는 데이터와 동일한 비트수의 데이터 및 상기 하나의 노멀 메모리 블록에 저장되는 패리티 코드의 적어도 2배 이상의 비트수의 패리티 코드가 저장될 수 있다.

Description

메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 {MEMORY DEVICE, MEMORY SYSTEM AND OPERATION METHOD OF THE MEMORY SYSTEM}
본 특허 문헌은 메모리 장치 및 이를 포함하는 메모리 시스템에 관한 것이다.
낸드 플래시(NAND Flash), 상변화 메모리(PCRAM: Phase-Change Random Access Memory) 등의 메모리 장치들은 하나의 셀에 대해 수행할 수 있는 쓰기 동작의 회수가 한정되어 있다. 예를 들어, 상변화 메모리는 106~108 정도의 한정된 쓰기 동작의 회수를 가질 수 있다. 따라서 특정 셀 영역에 대해서 쓰기 동작이 집중되는 경우에 메모리 장치의 수명이 급격히 감소할 수 있다. 이를 방지하게 위해 메모리 장치 전체 셀 영역에서 쓰기 동작이 균등하게 수행될 수 있도록 웨어 레벨링(wear leveling) 동작을 수행한다. 웨어 레벨링을 위해 가장 널리 사용되는 방법은 논리 어드레스와 물리 어드레스 간의 어드레스 맵핑을 변경하는 것에 의해 메모리 장치의 전체 셀 영역이 균등하게 사용되도록 하는 것이다.
한편, 메모리 장치는 다수개의 메모리 블록들을 포함하는데, 쓰기 동작의 회수가 초과 되거나 물리적인 결함이 있는 메모리 블록에서는 많은 에러가 발생해 정상적으로 동작하지 못할 수 있다. 그리고 많은 에러로 인해 정상적으로 동작하지 못하는 메모리 블록을 배드(bad) 메모리 블록으로 분류해 이를 사용하지 않는 방법이 널리 사용되고 있다.
본 발명의 실시예들은 배드 메모리 블록을 활용하는 기술을 제공할 수 있다.
본 발명의 일실시예에 따른 메모리 장치는, 다수의 노멀 메모리 블록들; 및 적어도 2개 이상의 배드 메모리 블록들을 포함하고, 상기 배드 메모리 블록들 중 제1배드 메모리 블록과 제2배드 메모리 블록에는 하나의 노멀 메모리 블록에 저장되는 데이터와 동일한 비트수의 데이터 및 상기 하나의 노멀 메모리 블록에 저장되는 패리티 코드의 적어도 2배 이상의 비트수의 패리티 코드가 저장될 수 있다.
상기 제1배드 메모리 블록과 상기 제2배드 메모리 블록은 함께 억세스될 수 있다.
상기 제1배드 메모리 블록의 제K(K는 1 이상 N 이하의 양의 정수, N은 제1배드 메모리 블록 내의 페이지 개수)페이지 억세스시에 상기 제2배드 메모리 블록에서도 제K페이지가 함께 억세스될 수 있다.
상기 제1배드 메모리 블록의 제K페이지에는 데이터와 상기 데이터의 에러를 정정하기 위한 제1패리티 코드가 저장되고, 상기 제2배드 메모리 블록의 제K페이지에는 상기 제1배드 메모리 블록의 제K페이지에 저장된 데이터와 제1패리티 코드의 에러를 정정하기 위한 제2패리티 코드가 저장될 수 있다.
본 발명의 일실시예에 따른 메모리 시스템의 동작 방법은, 메모리 장치의 배드 메모리 블록들의 라이트 동작을 결정하는 단계; 상기 배드 메모리 블록들 중 제1배드 메모리 블록에 저장될 정보의 에러를 정정하기 위한 제1패리티 코드를 생성하는 단계; 상기 제1배드 메모리 블록의 제K(K는 1 이상 N 이하의 양의 정수, N은 제1배드 메모리 블록 내의 페이지 개수)페이지에 상기 정보를 라이트하는 단계; 및 상기 배드 메모리 블록들 중 제2배드 메모리 블록의 제K페이지에 상기 제1패리티 코드를 라이트하는 단계를 포함할 수 있다.
상기 정보는 데이터를 포함할 수 있다.
상기 정보는 상기 데이터의 에러를 정정하기 위한 제2패리티 코드를 더 포함할 수 있다.
상기 동작 방법은, 상기 메모리 장치의 배드 메모리 블록들의 리드 동작을 결정하는 단계; 상기 제1배드 메모리 블록의 제K페이지로부터 상기 정보를 리드하는 단계; 상기 제2배드 메모리 블록의 제K페이지로부터 상기 제1패리티 코드를 리드하는 단계; 및 상기 제1패리티 코드를 이용해 상기 정보의 에러를 정정하는 단계를 더 포함할 수 있다.
상기 정보는 데이터와 상기 데이터의 에러를 정정하기 위한 제2패리티 코드를 포함하고, 상기 동작 방법은 상기 정보의 에러를 정정하는 단계 이후에, 상기 제2패리티 코드를 이용해 상기 데이터의 에러를 정정하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 메모리 시스템은, 다수의 노멀 메모리 블록들과 적어도 2개 이상의 배드 메모리 블록들을 포함하는 메모리 장치; 및 상기 메모리 장치를 제어하기 위한 메모리 콘트롤러를 포함하고, 상기 메모리 콘트롤러는 상기 배드 메모리 블록들 중 제1배드 메모리 블록에 저장될 데이터를 정정하기 위한 제1패리티 코드 -상기 제1패리티 코드는 상기 제1배드 메모리 블록에 상기 데이터와 함께 저장됨-를 생성하는 노멀 블록 에러 정정부; 및 상기 제1배드 메모리 블록에 저장될 상기 데이터와 상기 제1패리티 코드의 에러를 정정하기 위한 제2패리티 코드 -상기 제2패리티 코드는 상기 배드 메모리 블록들 중 제2배드 메모리 블록에 저장됨-를 생성하는 배드 블록 에러 정정부를 포함할 수 있다.
상기 제2패리티 코드의 비트 수는 상기 제1패리티 코드의 비트 수의 2배 이상일 수 있다.
상기 메모리 콘트롤러는 상기 메모리 장치의 상기 제1배드 메모리 블록과 상기 제2배드 메모리 블록을 함께 억세스할 수 있다.
상기 메모리 콘트롤러는 상기 제1배드 메모리 블록의 제K(K는 1 이상 N 이하의 양의 정수, N은 제1배드 메모리 블록 내의 페이지 개수)페이지 억세스시에 상기 제2배드 메모리 블록의 제K페이지를 억세스할 수 있다.
상기 메모리 콘트롤러는 논리 메모리 블록들 중 일부의 상기 노멀 메모리 블록들로의 맵핑을 위한 노멀 맵핑 테이블 -상기 노멀 맵핑 테이블에서 하나의 논리 메모리 블록은 하나의 노멀 메모리 블록으로 맵핑됨-; 상기 논리 메모리 블록들 중 나머지를 상기 배드 메모리 블록들로의 맵핑을 위한 배드 맵핑 테이블 -상기 배드 맵핑 테이블에서 하나의 논리 메모리 블록은 2개의 배드 메모리 블록들로 맵핑됨-; 및 상기 배드 메모리 블록들의 리스트를 저장하기 위한 배드 메모리 블록 테이블을 더 포함할 수 있다.
상기 메모리 콘트롤러는 호스트와의 통신을 위한 호스트 인터페이스; 상기 호스트의 요청들의 처리 순서를 결정하기 위한 스케쥴러; 상기 메모리 장치로 인가될 커맨드를 생성하기 위한 커맨드 생성기; 상기 메모리 장치의 웨어 레벨링 동작을 위한 웨어 레벨링부; 및 상기 메모리 장치와의 통신을 위한 메모리 인터페이스를 더 포함할 수 있다.
본 발명의 실시예들에 따르면, 배드 메모리 블록의 사용이 가능할 수 있다.
도 1에 본 발명의 일실시예에 따른 메모리 장치의 메모리 블록들에 저장되는 정보의 일 예를 도시한 도면.
도 2는 본 발명의 일실시예에 따른 메모리 장치의 메모리 블록들에 저장되는 정보의 다른 예를 도시한 도면.
도 3은 본 발명의 일실시예에 따른 메모리 시스템(300)의 구성도.
도 4는 배드 메모리 블록 테이블(317)의 일 예를 도시한 도면.
도 5는 노멀 맵핑 테이블(315)의 일 예를 도시한 도면.
도 6은 배드 맵핑 테이블(316)의 일 예를 도시한 도면.
도 7은 도 3의 메모리 시스템(300)의 라이트 동작의 일실시예를 도시한 도면.
도 8은 도 3의 메모리 시스템(300)의 리드 동작의 일실시예를 도시한 도면.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 본 발명을 설명함에 있어서, 본 발명의 요지와 무관한 구성은 생략될 수 있다. 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
도 1에 본 발명의 일실시예에 따른 메모리 장치의 메모리 블록들에 저장되는 정보의 일 예를 도시한 도면이다. 메모리 장치에는 다수의 메모리 블록(memory block)들이 포함되며, 각각의 메모리 블록들에는 다수의 페이지(page)가 포함될 수 있다. 여기서 페이지는 메모리 장치에서 리드 및 라이트 동작이 수행되는 단위일 수 있다.
도 1의 (A)는 노멀 메모리 블록의 하나의 페이지에 저장되는 정보를 나타낸 도면이다. 노멀 메모리 블록에는 데이터(DATA)와 데이터(DATA)의 에러를 정정하기 위한 제1패리티 코드(ECC1)가 저장될 수 있다.
도 1의 (B)는 2개의 배드 메모리 블록 각각의 하나의 페이지, 즉 총 2페이지, 에 저장되는 정보를 나타낸 도면이다. 첫번째 배드 메모리 블록에는 노멀 메모리 블록과 동일하게 데이터(DATA)와 데이터(DATA)의 에러를 정정하기 위한 제1패리티 코드(ECC1)가 저장될 수 있다. 그리고 두번째 배드 메모리 블록에는 첫번째 배드 메모리 블록에 저장된 정보(DATA, ECC1)의 에러를 정정하기 위한 제2패리티 코드(ECC2)가 저장될 수 있다.
노멀 메모리 블록에서는 에러가 발생하지 않거나 에러가 발생하더라도 적은 양의 에러가 발생하므로, 제1패리티 코드(ECC1)만으로도 데이터(DATA)의 에러를 정정 가능하다. 그러나 배드 메모리 블록에서는 많은 에러가 발생하므로, 제1패리티 코드(ECC1)와 제2패리티 코드(ECC2)를 사용하며, 2개의 배드 메모리 블록에 1개의 노멀 메모리 블록과 동일한 비트수의 데이터(DATA)가 저장될 수 있다. 여기서 제2패리티 코드(ECC2)는 제1패리티 코드(ECC1) 대비 적어도 2배 이상의 비트수를 가질 수 있으며, 데이터(DATA)와 제1패리티 코드(ECC1)를 합한 것만큼의 비트수도 가질 수 있다.
도 1에서는 노멀 메모리 블록에서도 제1패리티 코드(ECC1)가 저장되는 것을 예시했으나, 노멀 메모리 블록에서는 에러가 거의 발생하지 않으므로, 제1패리티 코드(ECC1)가 저장되지 않고 데이터(DATA)만 저장될 수도 있다. 이 경우에 2개의 배드 메모리 블록들 중 첫번째 배드 메모리 블록에는 데이터(DATA)만 저장되고 두번째 배드 메모리 블록에는 데이터(DATA)의 에러 정정을 위한 패리티 코드(ECC)가 저장될 수 있다.
도 2는 본 발명의 일실시예에 따른 메모리 장치의 메모리 블록들에 저장되는 정보의 다른 예를 도시한 도면이다.
도 2의 (A)는 노멀 메모리 블록의 하나의 페이지에 저장되는 정보를 나타낸 도면이다. 노멀 메모리 블록에는 데이터(DATA)와 데이터(DATA)의 에러를 정정하기 위한 제1패리티 코드(ECC1)가 저장될 수 있다.
도 2의 (B)는 2개의 배드 메모리 블록 각각의 하나의 페이지, 즉 총 2페이지, 에 저장되는 정보를 나타낸 도면이다. 도 1의 (B)에서는 첫번째 배드 메모리 블록에는 데이터(DATA)와 제1패리티 코드(ECC1)가 저장되고 두번째 배드 메모리 블록에는 제2패리티 코드(ECC2)가 저장되었지만, 도 2의 (B)에서는 데이터(DATA), 제1패리티 코드(ECC1) 및 제2패리티 코드(ECC2)가 첫번째와 두번째 배드 메모리 블록에 나누어 저장되는 것을 도시했다. 첫번째와 두번째 배드 메모리 블록에 저장되는 정보의 총량만 동일하다면, 데이터(DATA), 제1패리티 코드(ECC1) 및 제2패리티 코드(ECC2)가 2개의 배드 메모리 블록들 중 어느 블록에 저장되더라도 상관없다.
도 3은 본 발명의 일실시예에 따른 메모리 시스템(300)의 구성도이다.
도 3을 참조하면, 메모리 시스템(300)은 메모리 콘트롤러(310)와 메모리 장치(330)를 포함할 수 있다.
메모리 콘트롤러(310)는 호스트(HOST)의 요청에 따라 메모리 장치(320)의 동작을 제어할 수 있다. 호스트(HOST)는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 및 AP(Application Processor) 등의 프로세스 및 제어기 중 하나일 수 있다. 메모리 콘트롤러(310)는 호스트 인터페이스(311), 스케쥴러(312), 커맨드 생성기(313), 웨어 레벨링부(314), 노멀 맵핑 테이블(315), 배드 맵핑 테이블(316), 배드 메모리 블록 테이블(317), 노멀 블록 에러 정정부(318), 배드 블록 에러 정정부(319) 및 메모리 인터페이스(320)를 포함할 수 있다.
호스트 인터페이스(311)는 메모리 콘트롤러(310)와 호스트(HOST) 간의 인터페이스를 위한 것일 수 있다. 호스트 인터페이스(311)를 통해 호스트(HOST)의 요청들이 수신될 수 있으며, 요청들의 처리 결과들이 호스트(HOST)로 송신될 수 있다.
스케쥴러(312)는 호스트(HOST)로부터의 요청들 중 메모리 장치(320)에 지시할 요청의 순서를 정할 수 있다. 스케쥴러(312)는 메모리 장치(320)의 퍼포먼스 향상을 위해 호스트(HOST)로부터 요청들이 수신된 순서와 메모리 장치(320)로 지시할 동작의 순서를 다르게 할 수 있다. 예를 들어, 호스트(HOST)가 메모리 장치(320)의 리드 동작을 먼저 요청하고 라이트 동작을 이후에 요청했다고 하더라도, 라이트 동작이 리드 동작보다 먼저 수행되도록 순서를 조절할 수 있다.
커맨드 생성기(313)는 스케쥴러(312)에 의해 정해진 동작의 순서에 맞게 메모리 장치(320)로 인가할 커맨드를 생성할 수 있다.
메모리 인터페이스(320)는 메모리 콘트롤러(310)와 메모리 장치(330) 간의 인터페이스를 위한 것일 수 있다. 메모리 인터페이스(318)를 통해 메모리 콘트롤러(310)로부터 메모리 장치(330)로 커맨드(CMD)와 어드레스(ADD)가 전달되고, 메모리 장치(330)와 메모리 콘트롤러(310) 간에 데이터(DATA)가 송/수신될 수 있다. 메모리 인터페이스(318)를 PHY 인터페이스라고도 한다.
웨어 레벨링부(314)는 웨어 레벨링(wear leveling) 동작을 수행할 수 있다. 웨어 레벨링 동작이란 메모리 장치(330)의 메모리 블록들 중 특정 메모리 블록에만 쓰기 동작이 집중되어 메모리 장치(330)의 수명이 줄어드는 것을 방지하기 위한 동작으로, 메모리 블록들에 쓰기 동작이 균등하게 수행될 수 있도록 하는 동작이다. 웨어 레벨링 동작은 논리(logical) 메모리 블록들과 물리(physical) 메모리 블록들 간의 맵핑을 주기적으로 또는 특정 조건이 만족될 때마다 변경시키는 방법으로 수행될 수 있다.
배드 메모리 블록 테이블(317)은 메모리 장치(330) 메모리 블록들 중 배드 메모리 블록들의 리스트를 저장할 수 있다. 메모리 장치(330) 메모리 블록들 중 에러가 임계값 이상으로 발생하는 메모리 블록이 배드 메모리 블록으로 분류될 수 있다. 도 4는 배드 메모리 블록 테이블(317)의 일 예를 도시한 도면이다. 도 4를 참조하면, 메모리 장치(330)의 2번, 7번, 11번 12번 메모리 블록이 배드 메모리 블록(BMB, Bad Memory Block)으로 분류되어 있는 것을 확인할 수 있다.
노멀 맵핑 테이블(315)는 논리(logical) 메모리 블록들을 물리(physical) 메모리 블록들, 즉 메모리 장치(330)의 메모리 블록들, 로 맵핑하기 위한 테이블일 수 있다. 노멀 맵핑 테이블(315)에서 하나의 논리 메모리 블록은 하나의 물리 메모리 블록으로 맵핑될 수 있다. 도 5는 노멀 맵핑 테이블(315)의 일 예를 도시한 도면이다. 도 5를 참조하면, 0~9 논리 메모리 블록들(LMB, Logical Memory Block)이 어느 물리 메모리 블록들(PMB, Physical Memory Blcok)로 맵핑되어 있는지를 확인할 수 있다. 예를 들어, 0번 논리 메모리 블록(LMB)은 1번 물리 메모리 블록(PMB)으로 맵핑되고, 5번 논리 메모리 블록(LMB)은 4번 물리 메모리 블록(PMB)으로 맵핑된 것을 확인할 수 있다. 도 5의 유효 플래그(Valid)는 맵핑의 유효성을 나타내는 것으로 유효 플래그(Valid)가 '1'이면 해당 맵핑이 유효하다는 것을 나타내고 유효 플래그(Valid)가 '0'이면 해당 맵핑이 무효라는 것을 나타낼 수 있다. 즉, 도 5에 따르면 7번 논리 메모리 블록(LMB)은 노멀 맵핑 테이블(315)에서는 맵핑되지 않았다는 것을 확인할 수 있다.
배드 맵핑 테이블(316)은 논리 메모리 블록들 중 노멀 맵핑 테이블(315)에 서 맵핑되지 않은 논리 메모리 블록들을 메모리 장치(330)의 배드 메모리 블록들로 맵핑하기 위한 테이블일 수 있다. 배드 맵핑 테이블(316)은 하나의 논리 메모리 블록을 2개의 배드 메모리 블록으로 맵핑할 수 있다. 도 6은 배드 맵핑 테이블(316)의 일 예를 도시한 도면이다. 도 6을 참조하면, 노멀 맵핑 테이블(315)에서 맵핑되지 않은 7번 논리 메모리 블록(LMB)이 배드 메모리 블록인 2번과 7번 물리 메모리 블록(PMB)으로 맵핑된 것을 확인할 수 있다. 도 6의 유효 플래그(Valid)는 맵핑의 유효성을 나타내는 것으로 유효 플래그(Valid)가 '1'이면 해당 맵핑이 유효하다는 것을 나타내고 유효 플래그(Valid)가 '0'이면 해당 맵핑이 무효라는 것을 나타낼 수 있다.
노멀 블록 에러 정정부(318)는 라이트 동작시에 데이터(DATA)를 이용해 제1패리티 코드(ECC1)를 생성하고, 리드 동작시에 제1패리티 코드(ECC1)를 이용해 데이터(DATA)의 에러를 정정할 수 있다. 노멀 블록 에러 정정부(318)에서 생성된 제1패리티 코드(ECC1)는 노멀 메모리 블록에서 데이터와 함께 저장될 수 있다. 또한, 제1패리티 코드(ECC1)는 함께 억세스되는 2개의 배드 메모리 블록들 중 하나의 배드 메모리 블록에서 데이터(DATA)와 함께 저장될 수 있다. 데이터(DATA) 및 제1패리티 코드(ECC1)는 도 1과 도 2를 참조하여 이해될 수 있다.
배드 블록 에러 정정부(319)는 라이트 동작시에 데이터(DATA)와 제1패리티 코드(ECC1)를 이용해 데이터(DATA)와 제1패리티 코드(ECC1)의 에러를 정정하기 위한 제2패리티 코드(ECC2)를 생성하고, 리드 동작시에 제2패리티 코드(ECC2)를 이용해 데이터(DATA)와 제1패리티 코드(ECC2)의 에러를 정정할 수 있다. 제2패리티 코드(ECC2)는 도 1과 도 2를 참조하여 이해될 수 있다.
메모리 장치(330)는 메모리 콘트롤러(310)의 제어에 따라 리드(read), 라이트(write) 등의 동작을 수행할 수 있다. 메모리 장치(330)는 다수의 메모리 블록들을 포함할 수 있다. 메모리 장치(330)는 PCRAM(Phase-change Random Access Memory), RRAM(Resistive Random Access Memory), FRAM(Ferroelectric Random Access Memory), MRAM(Magnetic Random Access Memory), NAND Flash 및 DRAM 등 모든 종류의 메모리들 중 하나일 수 있다.
도 7은 도 3의 메모리 시스템(300)의 라이트 동작의 일실시예를 도시한 도면이다.
도 7을 참조하면, 먼저 호스트(HOST)로부터 메모리 콘트롤러(310)로 라이트 동작의 수행이 요청될 수 있다(S701). 호스트(HOST)의 라이트 요청에는 라이트 동작이 수행되어야 할 논리 메모리 블록 및 논리 메모리 블록 내의 페이지에 관한 정보 및 라이트 데이터가 포함될 수 있다.
단계(S703)에서 라이트 동작이 메모리 장치(330)의 노멀 메모리 블록에서 수행될 것인지 배드 메모리 블록들에서 수행될 것인지가 결정될 수 있다. 단계(S701)에서 라이트 동작이 요청된 논리 메모리 블록이 노멀 맵핑 테이블(315)에 의해 맵핑된 경우에는 메모리 장치(330)의 노멀 메모리 블록에서 라이트 동작이 수행될 수 있다. 예를 들어, 2번 논리 메모리 블록에 대한 라이트 동작이 요청된 경우에는 노멀 메모리 블록인 메모리 장치(330)의 8번 메모리 블록에서 라이트 동작이 수행될 수 있다. 단계(S701)에서 라이트 동작이 요청된 논리 메모리 블록이 배드 맵핑 테이블(316)에 의해 맵핑된 경우에는 메모리 장치(330)의 배드 메모리 블록들에서 라이트 동작이 수행될 수 있다. 예를 들어, 7번 논리 메모리 블록에 대한 라이트 동작이 요청된 경우에는 배드 메모리 블록들인 메모리 장치(330)의 2번과 7번 메모리 블록들에서 라이트 동작이 수행될 수 있다.
단계(S703)에서 라이트 동작이 메모리 장치(330)의 노멀 메모리 블록에서 수행될 것이 결정된 경우에(S703에서 N), 노멀 맵핑 테이블(315)에 의해 맵핑된 메모리 장치(330)의 메모리 블록의 한 페이지에 데이터(DATA)와 노멀 블록 에러 정정부(318)에서 생성된 제1패리티 코드(ECC1)가 라이트될 수 있다(S705).
단계(S703)에서 라이트 동작이 메모리 장치(330)의 배드 메모리 블록들에서 수행될 것이 결정된 경우에(S703에서 Y), 메모리 콘트롤러(310)의 스케쥴러(312)는 2개의 배드 메모리 블록들에 대한 라이트 동작을 스케쥴링할 수 있다.
먼저, 배드 맵핑 테이블(316)에 의해 맵핑된 메모리 장치(330)의 2개의 배드 메모리 블록들(예, 2번 7번 메모리 블록들) 중 하나의 배드 메모리 블록(예, 2번 메모리 블록)의 한 페이지에 데이터(DATA)와 노멀 블록 에러 정정부(318)에서 생성된 제1패리티 코드(ECC1)가 라이트될 수 있다(S707).
그리고 배드 맵핑 테이블(316)에 의해 맵핑된 메모리 장치(330)의 2개의 배드 메모리 블록들(예, 2번 7번 메모리 블록들) 중 나머지 하나의 배드 메모리 블록(예, 7번 메모리 블록)의 한 페이지에 배드 블록 에러 정정부(319)에서 생성된 제2패리티 코드(ECC2)가 라이트될 수 있다(S709). 함께 억세스되는 2개의 배드 메모리 블록들에서는 동일한 페이지가 억세스될 수 있다. 예를 들어, 단계(S707)에서 2번 메모리 블록의 3번째 페이지에 라이트 동작이 수행되었다면, 단계(S709)에서는 7번 메모리 블록의 3번째 페이지에 라이트 동작이 수행될 수 있다.
도 7에 라이트 방법에 따르면, 배드 메모리 블록들에 대한 데이터 라이트 동작시에, 노멀 메모리 블록에 대한 데이터 라이트 동작시보다 훨씬 더 많은 비트수의 패리티 코드를 저장시키는 것에 의해 배드 메모리 블록들에서 발생할 많은 양의 에러에 대비할 수 있다.
도 8은 도 3의 메모리 시스템(300)의 리드 동작의 일실시예를 도시한 도면이다.
도 8을 참조하면, 먼저 호스트(HOST)로부터 메모리 콘트롤러(310)로 리드 동작의 수행이 요청될 수 있다(S801). 호스트(HOST)의 리드 요청에는 라이트 동작이 수행되어야 할 논리 메모리 블록 및 논리 메모리 블록 내의 페이지에 관한 정보가 포함될 수 있다.
단계(S803)에서 리드 동작이 메모리 장치(330)의 노멀 메모리 블록에서 수행될 것인지 배드 메모리 블록들에서 수행될 것인지가 결정될 수 있다. 단계(S801)에서 리드 동작이 요청된 논리 메모리 블록이 노멀 맵핑 테이블(315)에 의해 맵핑된 경우에는 메모리 장치(330)의 노멀 메모리 블록에서 라이트 동작이 수행될 수 있다. 예를 들어, 2번 논리 메모리 블록에 대한 리드 동작이 요청된 경우에는 노멀 메모리 블록인 메모리 장치(330)의 8번 메모리 블록에서 리드 동작이 수행될 수 있다. 단계(S801)에서 리드 동작이 요청된 논리 메모리 블록이 배드 맵핑 테이블(316)에 의해 맵핑된 경우에는 메모리 장치(330)의 배드 메모리 블록들에서 라이트 동작이 수행될 수 있다. 예를 들어, 7번 논리 메모리 블록에 대한 리드 동작이 요청된 경우에는 배드 메모리 블록들인 메모리 장치(330)의 2번과 7번 메모리 블록들에서 리드 동작이 수행될 수 있다.
단계(S803)에서 리드 동작이 메모리 장치(330)의 노멀 메모리 블록에서 수행될 것이 결정된 경우에(S803에서 N), 노멀 맵핑 테이블(315)에 의해 맵핑된 메모리 장치(330)의 메모리 블록의 한 페이지로부터 데이터(DATA)와 제1패리티 코드(ECC1)가 리드될 수 있다(S805).
단계(807)에서 노멀 블록 에러 정정부(318)는 제1패리티 코드(ECC1)를 이용해 데이터(DATA)의 에러를 정정할 수 있다. 그리고 단계(809)에서는 에러가 정정된 데이터(DATA)가 호스트 인터페이스(311)를 통해 호스트(HOST)로 전달될 수 있다.
단계(S803)에서 리드 동작이 메모리 장치(330)의 배드 메모리 블록들에서 수행될 것이 결정된 경우에(S803에서 Y), 메모리 콘트롤러(310)의 스케쥴러(312)는 2개의 배드 메모리 블록들에 대한 리드 동작을 스케쥴링할 수 있다.
먼저, 배드 맵핑 테이블(316)에 의해 맵핑된 메모리 장치(330)의 2개의 배드 메모리 블록들(예, 2번 7번 메모리 블록들) 중 하나의 배드 메모리 블록(예, 2번 메모리 블록)의 한 페이지로부터 데이터(DATA)와 제1패리티 코드(ECC1)가 리드될 수 있다(S811).
그리고 배드 맵핑 테이블(316)에 의해 맵핑된 메모리 장치(330)의 2개의 배드 메모리 블록들 중 나머지 배드 메모리 블록(예, 7번 메모리 블록)의 한 페이지로부터 제2패리티 코드(ECC2)가 리드될 수 있다(S813). 함께 억세스되는 2개의 배드 메모리 블록들에서는 동일한 페이지가 억세스될 수 있다. 예를 들어, 단계(S811)에서 2번 메모리 블록의 3번째 페이지로부터 리드 동작이 수행되었다면, 단계(S813)에서 7번 메모리 블록의 3번째 페이지로부터 리드 동작이 수행될 수 있다.
단계(S815)에서 배드 블록 에러 정정부(319)는 제2패리티 코드(ECC2)를 이용해 데이터(DATA)와 제1패리티 코드(ECC1)의 에러를 정정할 수 있다. 그리고 단계(S817)에서 노멀 블록 에러 정정부(318)는 제1패리티 코드(ECC1)를 이용해 데이터(DATA)의 에러를 정정할 수 있다. 그리고 단계(S819)에서 에러가 정정된 데이터(DATA)가 호스트 인터페이스(311)를 통해 호스트(HOST)로 전달될 수 있다.
도 8의 리드 방법에 따르면, 배드 메모리 블록들에 대한 데이터 리드 동작시에는 에러가 강력하게 정정되므로, 배드 메모리 블록들에서 많은 에러가 발생하더라도 배드 메모리 블록들을 사용할 수 있다.
본 발명의 기술사상은 상기 바람직한 실시예들에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 알 수 있을 것이다.
300: 메모리 시스템
310: 메모리 콘트롤러
330: 메모리 장치

Claims (15)

  1. 다수의 노멀 메모리 블록들; 및
    적어도 2개 이상의 배드 메모리 블록들을 포함하고,
    상기 배드 메모리 블록들 중 제1배드 메모리 블록과 제2배드 메모리 블록에는 하나의 노멀 메모리 블록에 저장되는 데이터와 동일한 비트수의 데이터 및 상기 하나의 노멀 메모리 블록에 저장되는 패리티 코드의 적어도 2배 이상의 비트수의 패리티 코드가 저장되는
    메모리 장치.
  2. 제 1항에 있어서,
    상기 제1배드 메모리 블록과 상기 제2배드 메모리 블록은 함께 억세스되는
    메모리 장치.
  3. 제 2항에 있어서,
    상기 제1배드 메모리 블록의 제K(K는 1 이상 N 이하의 양의 정수, N은 제1배드 메모리 블록 내의 페이지 개수)페이지 억세스시에 상기 제2배드 메모리 블록에서도 제K페이지가 함께 억세스되는
    메모리 장치.
  4. 제 3항에 있어서,
    상기 제1배드 메모리 블록의 제K페이지에는 데이터와 상기 데이터의 에러를 정정하기 위한 제1패리티 코드가 저장되고,
    상기 제2배드 메모리 블록의 제K페이지에는 상기 제1배드 메모리 블록의 제K페이지에 저장된 데이터와 제1패리티 코드의 에러를 정정하기 위한 제2패리티 코드가 저장되는
    메모리 장치.
  5. 메모리 장치의 배드 메모리 블록들의 라이트 동작을 결정하는 단계;
    상기 배드 메모리 블록들 중 제1배드 메모리 블록에 저장될 정보의 에러를 정정하기 위한 제1패리티 코드를 생성하는 단계;
    상기 제1배드 메모리 블록의 제K(K는 1 이상 N 이하의 양의 정수, N은 제1배드 메모리 블록 내의 페이지 개수)페이지에 상기 정보를 라이트하는 단계; 및
    상기 배드 메모리 블록들 중 제2배드 메모리 블록의 제K페이지에 상기 제1패리티 코드를 라이트하는 단계
    를 포함하는 메모리 시스템의 동작 방법.
  6. 제 5항에 있어서,
    상기 정보는 데이터를 포함하는
    메모리 시스템의 동작 방법.
  7. 제 6항에 있어서,
    상기 정보는 상기 데이터의 에러를 정정하기 위한 제2패리티 코드를 더 포함하는
    메모리 시스템의 동작 방법.
  8. 제 5항에 있어서,
    상기 메모리 장치의 배드 메모리 블록들의 리드 동작을 결정하는 단계;
    상기 제1배드 메모리 블록의 제K페이지로부터 상기 정보를 리드하는 단계;
    상기 제2배드 메모리 블록의 제K페이지로부터 상기 제1패리티 코드를 리드하는 단계; 및
    상기 제1패리티 코드를 이용해 상기 정보의 에러를 정정하는 단계
    를 더 포함하는 메모리 시스템의 동작 방법.
  9. 제 8항에 있어서,
    상기 정보는 데이터와 상기 데이터의 에러를 정정하기 위한 제2패리티 코드를 포함하고,
    상기 동작 방법은
    상기 정보의 에러를 정정하는 단계 이후에, 상기 제2패리티 코드를 이용해 상기 데이터의 에러를 정정하는 단계를 더 포함하는
    메모리 시스템의 동작 방법.
  10. 다수의 노멀 메모리 블록들과 적어도 2개 이상의 배드 메모리 블록들을 포함하는 메모리 장치; 및
    상기 메모리 장치를 제어하기 위한 메모리 콘트롤러를 포함하고,
    상기 메모리 콘트롤러는
    상기 배드 메모리 블록들 중 제1배드 메모리 블록에 저장될 데이터를 정정하기 위한 제1패리티 코드 -상기 제1패리티 코드는 상기 제1배드 메모리 블록에 상기 데이터와 함께 저장됨-를 생성하는 노멀 블록 에러 정정부; 및
    상기 제1배드 메모리 블록에 저장될 상기 데이터와 상기 제1패리티 코드의 에러를 정정하기 위한 제2패리티 코드 -상기 제2패리티 코드는 상기 배드 메모리 블록들 중 제2배드 메모리 블록에 저장됨-를 생성하는 배드 블록 에러 정정부를 포함하는
    메모리 시스템.
  11. 제 10항에 있어서,
    상기 제2패리티 코드의 비트 수는 상기 제1패리티 코드의 비트 수의 2배 이상인
    메모리 시스템.
  12. 제 10항에 있어서,
    상기 메모리 콘트롤러는 상기 메모리 장치의 상기 제1배드 메모리 블록과 상기 제2배드 메모리 블록을 함께 억세스하는
    메모리 시스템.
  13. 제 12항에 있어서,
    상기 메모리 콘트롤러는 상기 제1배드 메모리 블록의 제K(K는 1 이상 N 이하의 양의 정수, N은 제1배드 메모리 블록 내의 페이지 개수)페이지 억세스시에 상기 제2배드 메모리 블록의 제K페이지를 억세스하는
    메모리 시스템.
  14. 제 10항에 있어서,
    상기 메모리 콘트롤러는
    논리 메모리 블록들 중 일부의 상기 노멀 메모리 블록들로의 맵핑을 위한 노멀 맵핑 테이블 -상기 노멀 맵핑 테이블에서 하나의 논리 메모리 블록은 하나의 노멀 메모리 블록으로 맵핑됨-;
    상기 논리 메모리 블록들 중 나머지를 상기 배드 메모리 블록들로의 맵핑을 위한 배드 맵핑 테이블 -상기 배드 맵핑 테이블에서 하나의 논리 메모리 블록은 2개의 배드 메모리 블록들로 맵핑됨-; 및
    상기 배드 메모리 블록들의 리스트를 저장하기 위한 배드 메모리 블록 테이블을 더 포함하는
    메모리 시스템.
  15. 제 14항에 있어서,
    상기 메모리 콘트롤러는
    호스트와의 통신을 위한 호스트 인터페이스;
    상기 호스트의 요청들의 처리 순서를 결정하기 위한 스케쥴러;
    상기 메모리 장치로 인가될 커맨드를 생성하기 위한 커맨드 생성기;
    상기 메모리 장치의 웨어 레벨링 동작을 위한 웨어 레벨링부; 및
    상기 메모리 장치와의 통신을 위한 메모리 인터페이스를 더 포함하는
    메모리 시스템.
KR1020170010342A 2017-01-23 2017-01-23 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 KR20180087494A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170010342A KR20180087494A (ko) 2017-01-23 2017-01-23 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법
US15/793,007 US10740226B2 (en) 2017-01-23 2017-10-25 Memory device, memory system, and operation method thereof
TW106142539A TWI759370B (zh) 2017-01-23 2017-12-05 記憶體裝置、記憶體系統及其操作方法
CN201810053281.5A CN108345514B (zh) 2017-01-23 2018-01-19 存储器件、存储系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170010342A KR20180087494A (ko) 2017-01-23 2017-01-23 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
KR20180087494A true KR20180087494A (ko) 2018-08-02

Family

ID=62906913

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170010342A KR20180087494A (ko) 2017-01-23 2017-01-23 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법

Country Status (4)

Country Link
US (1) US10740226B2 (ko)
KR (1) KR20180087494A (ko)
CN (1) CN108345514B (ko)
TW (1) TWI759370B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210041876A (ko) 2019-10-08 2021-04-16 (주)신아이엔지 자동 바이패스 기능을 갖는 전원 절체 스위치
US11508454B2 (en) 2020-04-16 2022-11-22 SK Hynix Inc. Data storage device and method of operating the same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI728618B (zh) * 2019-12-24 2021-05-21 睿寬智能科技有限公司 管理壞塊的方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913927A (en) * 1995-12-15 1999-06-22 Mylex Corporation Method and apparatus for management of faulty data in a raid system
US8806116B2 (en) * 2008-02-12 2014-08-12 Virident Systems, Inc. Memory modules for two-dimensional main memory
KR100823170B1 (ko) * 2007-01-31 2008-04-21 삼성전자주식회사 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드
CN101859604B (zh) * 2009-04-10 2012-10-24 国民技术股份有限公司 闪存坏块的利用方法
CN101882472A (zh) * 2009-05-05 2010-11-10 建兴电子科技股份有限公司 具可变动错误校正码机制的快闪储存装置及其控制方法
TWI483258B (zh) * 2010-02-26 2015-05-01 Transcend Information Inc 使用壞區塊增加率的記憶體異常警示方法以及相關的儲存裝置預警系統
TWI447739B (zh) * 2010-03-22 2014-08-01 Phison Electronics Corp 錯誤校正方法、記憶體控制器與儲存系統
JP2013125513A (ja) * 2011-12-16 2013-06-24 Samsung Electronics Co Ltd 不揮発性半導体記憶装置及びその管理方法
US9088303B2 (en) * 2013-02-28 2015-07-21 Micron Technology, Inc. Codewords that span pages of memory
CN103631534B (zh) * 2013-11-12 2017-01-11 北京兆芯电子科技有限公司 数据存储系统以及其管理方法
CN103645965A (zh) * 2013-11-28 2014-03-19 陕西千山航空电子有限责任公司 基于ecc纠错码的nand-flash坏块恢复方法
TWI512750B (zh) * 2014-07-30 2015-12-11 Phison Electronics Corp 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
KR102231441B1 (ko) * 2014-12-17 2021-03-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI557559B (zh) * 2015-01-06 2016-11-11 國立臺灣科技大學 利用快閃記憶體的壞頁來存取資料的方法
US9997258B2 (en) * 2016-05-10 2018-06-12 Sandisk Technologies Llc Using non-volatile memory bad blocks
US10445199B2 (en) * 2016-12-22 2019-10-15 Western Digital Technologies, Inc. Bad page management in storage devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210041876A (ko) 2019-10-08 2021-04-16 (주)신아이엔지 자동 바이패스 기능을 갖는 전원 절체 스위치
US11508454B2 (en) 2020-04-16 2022-11-22 SK Hynix Inc. Data storage device and method of operating the same

Also Published As

Publication number Publication date
TWI759370B (zh) 2022-04-01
CN108345514B (zh) 2021-05-11
US20180210826A1 (en) 2018-07-26
TW201828069A (zh) 2018-08-01
US10740226B2 (en) 2020-08-11
CN108345514A (zh) 2018-07-31

Similar Documents

Publication Publication Date Title
US9189325B2 (en) Memory system and operation method thereof
KR100954731B1 (ko) 에러 보고 방법
US8839053B2 (en) Error correcting pointers for non-volatile storage
US8601347B1 (en) Flash memory device and storage control method
US20100281202A1 (en) Wear-leveling and bad block management of limited lifetime memory devices
US10409500B2 (en) Multiple indirection granularities for mass storage devices
KR102358177B1 (ko) 제어회로 및 제어회로를 포함하는 메모리 장치
US10268540B2 (en) Data storage device and operating method thereof
JP2015018451A (ja) メモリコントローラ、記憶装置およびメモリ制御方法
US11334415B2 (en) Data storage device and method for sharing memory of controller thereof
KR20170015757A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20160224419A1 (en) Device and method
US20130031300A1 (en) Non-volatile memory device, method of operating the same, and memory system having the non-volatile memory device
US20230106125A1 (en) Memory with multi-mode ecc engine
US9519541B2 (en) Data storage device and data checking and correction for volatile memory
US9489300B2 (en) Data encoding for non-volatile memory
CN108345514B (zh) 存储器件、存储系统及其操作方法
US11366751B2 (en) Storage device and storage control method
CN112860182B (zh) 用于写回合并的位屏蔽有效扇区
US10922025B2 (en) Nonvolatile memory bad row management
US9104596B2 (en) Memory system
KR20150122493A (ko) 데이터 저장 장치 및 그것의 동작 방법
US9003261B2 (en) Memory system
JP2015191295A (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
CN117742572A (zh) 存储器、控制器、存储器系统及存储器系统的操作方法