KR20180087494A - 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 - Google Patents
메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1044—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear 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
본 특허 문헌은 메모리 장치 및 이를 포함하는 메모리 시스템에 관한 것이다.
낸드 플래시(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)의 리드 동작의 일실시예를 도시한 도면.
도 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: 메모리 장치
310: 메모리 콘트롤러
330: 메모리 장치
Claims (15)
- 다수의 노멀 메모리 블록들; 및
적어도 2개 이상의 배드 메모리 블록들을 포함하고,
상기 배드 메모리 블록들 중 제1배드 메모리 블록과 제2배드 메모리 블록에는 하나의 노멀 메모리 블록에 저장되는 데이터와 동일한 비트수의 데이터 및 상기 하나의 노멀 메모리 블록에 저장되는 패리티 코드의 적어도 2배 이상의 비트수의 패리티 코드가 저장되는
메모리 장치.
- 제 1항에 있어서,
상기 제1배드 메모리 블록과 상기 제2배드 메모리 블록은 함께 억세스되는
메모리 장치.
- 제 2항에 있어서,
상기 제1배드 메모리 블록의 제K(K는 1 이상 N 이하의 양의 정수, N은 제1배드 메모리 블록 내의 페이지 개수)페이지 억세스시에 상기 제2배드 메모리 블록에서도 제K페이지가 함께 억세스되는
메모리 장치.
- 제 3항에 있어서,
상기 제1배드 메모리 블록의 제K페이지에는 데이터와 상기 데이터의 에러를 정정하기 위한 제1패리티 코드가 저장되고,
상기 제2배드 메모리 블록의 제K페이지에는 상기 제1배드 메모리 블록의 제K페이지에 저장된 데이터와 제1패리티 코드의 에러를 정정하기 위한 제2패리티 코드가 저장되는
메모리 장치.
- 메모리 장치의 배드 메모리 블록들의 라이트 동작을 결정하는 단계;
상기 배드 메모리 블록들 중 제1배드 메모리 블록에 저장될 정보의 에러를 정정하기 위한 제1패리티 코드를 생성하는 단계;
상기 제1배드 메모리 블록의 제K(K는 1 이상 N 이하의 양의 정수, N은 제1배드 메모리 블록 내의 페이지 개수)페이지에 상기 정보를 라이트하는 단계; 및
상기 배드 메모리 블록들 중 제2배드 메모리 블록의 제K페이지에 상기 제1패리티 코드를 라이트하는 단계
를 포함하는 메모리 시스템의 동작 방법. - 제 5항에 있어서,
상기 정보는 데이터를 포함하는
메모리 시스템의 동작 방법.
- 제 6항에 있어서,
상기 정보는 상기 데이터의 에러를 정정하기 위한 제2패리티 코드를 더 포함하는
메모리 시스템의 동작 방법.
- 제 5항에 있어서,
상기 메모리 장치의 배드 메모리 블록들의 리드 동작을 결정하는 단계;
상기 제1배드 메모리 블록의 제K페이지로부터 상기 정보를 리드하는 단계;
상기 제2배드 메모리 블록의 제K페이지로부터 상기 제1패리티 코드를 리드하는 단계; 및
상기 제1패리티 코드를 이용해 상기 정보의 에러를 정정하는 단계
를 더 포함하는 메모리 시스템의 동작 방법.
- 제 8항에 있어서,
상기 정보는 데이터와 상기 데이터의 에러를 정정하기 위한 제2패리티 코드를 포함하고,
상기 동작 방법은
상기 정보의 에러를 정정하는 단계 이후에, 상기 제2패리티 코드를 이용해 상기 데이터의 에러를 정정하는 단계를 더 포함하는
메모리 시스템의 동작 방법.
- 다수의 노멀 메모리 블록들과 적어도 2개 이상의 배드 메모리 블록들을 포함하는 메모리 장치; 및
상기 메모리 장치를 제어하기 위한 메모리 콘트롤러를 포함하고,
상기 메모리 콘트롤러는
상기 배드 메모리 블록들 중 제1배드 메모리 블록에 저장될 데이터를 정정하기 위한 제1패리티 코드 -상기 제1패리티 코드는 상기 제1배드 메모리 블록에 상기 데이터와 함께 저장됨-를 생성하는 노멀 블록 에러 정정부; 및
상기 제1배드 메모리 블록에 저장될 상기 데이터와 상기 제1패리티 코드의 에러를 정정하기 위한 제2패리티 코드 -상기 제2패리티 코드는 상기 배드 메모리 블록들 중 제2배드 메모리 블록에 저장됨-를 생성하는 배드 블록 에러 정정부를 포함하는
메모리 시스템.
- 제 10항에 있어서,
상기 제2패리티 코드의 비트 수는 상기 제1패리티 코드의 비트 수의 2배 이상인
메모리 시스템.
- 제 10항에 있어서,
상기 메모리 콘트롤러는 상기 메모리 장치의 상기 제1배드 메모리 블록과 상기 제2배드 메모리 블록을 함께 억세스하는
메모리 시스템.
- 제 12항에 있어서,
상기 메모리 콘트롤러는 상기 제1배드 메모리 블록의 제K(K는 1 이상 N 이하의 양의 정수, N은 제1배드 메모리 블록 내의 페이지 개수)페이지 억세스시에 상기 제2배드 메모리 블록의 제K페이지를 억세스하는
메모리 시스템.
- 제 10항에 있어서,
상기 메모리 콘트롤러는
논리 메모리 블록들 중 일부의 상기 노멀 메모리 블록들로의 맵핑을 위한 노멀 맵핑 테이블 -상기 노멀 맵핑 테이블에서 하나의 논리 메모리 블록은 하나의 노멀 메모리 블록으로 맵핑됨-;
상기 논리 메모리 블록들 중 나머지를 상기 배드 메모리 블록들로의 맵핑을 위한 배드 맵핑 테이블 -상기 배드 맵핑 테이블에서 하나의 논리 메모리 블록은 2개의 배드 메모리 블록들로 맵핑됨-; 및
상기 배드 메모리 블록들의 리스트를 저장하기 위한 배드 메모리 블록 테이블을 더 포함하는
메모리 시스템.
- 제 14항에 있어서,
상기 메모리 콘트롤러는
호스트와의 통신을 위한 호스트 인터페이스;
상기 호스트의 요청들의 처리 순서를 결정하기 위한 스케쥴러;
상기 메모리 장치로 인가될 커맨드를 생성하기 위한 커맨드 생성기;
상기 메모리 장치의 웨어 레벨링 동작을 위한 웨어 레벨링부; 및
상기 메모리 장치와의 통신을 위한 메모리 인터페이스를 더 포함하는
메모리 시스템.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI728618B (zh) * | 2019-12-24 | 2021-05-21 | 睿寬智能科技有限公司 | 管理壞塊的方法 |
Family Cites Families (16)
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 |
-
2017
- 2017-01-23 KR KR1020170010342A patent/KR20180087494A/ko unknown
- 2017-10-25 US US15/793,007 patent/US10740226B2/en active Active
- 2017-12-05 TW TW106142539A patent/TWI759370B/zh active
-
2018
- 2018-01-19 CN CN201810053281.5A patent/CN108345514B/zh active Active
Cited By (2)
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) | 存储器、控制器、存储器系统及存储器系统的操作方法 |