KR102487553B1 - 리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 - Google Patents

리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 Download PDF

Info

Publication number
KR102487553B1
KR102487553B1 KR1020160166206A KR20160166206A KR102487553B1 KR 102487553 B1 KR102487553 B1 KR 102487553B1 KR 1020160166206 A KR1020160166206 A KR 1020160166206A KR 20160166206 A KR20160166206 A KR 20160166206A KR 102487553 B1 KR102487553 B1 KR 102487553B1
Authority
KR
South Korea
Prior art keywords
test
volatile memory
storage device
data
controller
Prior art date
Application number
KR1020160166206A
Other languages
English (en)
Other versions
KR20180065423A (ko
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 KR1020160166206A priority Critical patent/KR102487553B1/ko
Priority to US15/695,366 priority patent/US10847244B2/en
Priority to CN201710991230.2A priority patent/CN108172262B/zh
Publication of KR20180065423A publication Critical patent/KR20180065423A/ko
Application granted granted Critical
Publication of KR102487553B1 publication Critical patent/KR102487553B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • 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/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/783Masking faults in memories by using spares or by reconfiguring using programmable devices with refresh of replacement cells, e.g. in DRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • G11C2029/2602Concurrent test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters

Abstract

리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법이 개시된다. 본 개시의 기술적 사상에 따른 스토리지 장치는, 유저 데이터를 저장하는 비휘발성 메모리, 상기 유저 데이터를 버퍼링하고, 상기 스토리지 장치의 유휴 시간에 휘발성 셀 어레이에 대하여 결함 셀 검출을 위한 테스트를 수행하는 휘발성 메모리, 및 상기 유휴 시간에 상기 휘발성 메모리가 상기 테스트를 수행하도록 제어하고, 테스트 결과 또는 테스트 이력(history)을 포함하는 테스트 정보를 상기 비휘발성 메모리에 저장하는 컨트롤러를 포함할 수 있다.

Description

리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 {Storage Device comprising repairable volatile memory and operating method of storage device}
본 개시의 기술적 사상은 스토리지 장치에 관한 것으로서, 자세하게는 휘발성 메모리를 메인 메모리로 사용하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법에 관한 것이다.
반도체 메모리 장치로서 비휘발성 메모리 장치는 데이터를 비휘발성하게 저장하는 메모리 셀들을 포함한다. 비휘발성 메모리 장치의 일 예로서, 플래시 메모리 장치는 메모리 카드 및 솔리드 스테이트 드라이브(Solid State Drive, SSD) 등의 다양한 종류의 스토리지 장치에 이용되며, 스토리지 장치는 휴대폰, 디지털 카메라, 휴대용 정보 단말기(PDA), 이동식 컴퓨터 장치, 고정식 컴퓨터 장치 등 다양한 전자 시스템에 채용되어 사용될 수 있다.
스토리지 장치는 호스트의 요청에 따라 데이터를 저장 및 독출할 수 있다. 또한, 스토리지 장치는 다수 개의 플래시 메모리 장치들을 포함할 수 있으며, 플래시 메모리 장치들에 대해 다수의 채널들을 통한 데이터 기록 및 데이터 독출 등의 메모리 동작을 수행할 수 있다. 또한, 스토리지 장치는 데이터를 임시적으로 저장하는 휘발성 메모리(예컨대, DRAM 버퍼)를 포함하고, 기록 데이터 또는 독출 데이터가 휘발성 메모리에 일시적으로 저장될 수 있다.
본 개시의 기술적 사상은 메인 메모리로 사용되는 휘발성 메모리의 셀 특성 이상 불량을 성능 저하 없이 사전에 검출하고, 데이터 오류 발생을 방지하는 스토리지 장치 및 스토리지 장치의 동작 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상에 따른 스토리지 장치는, 유저 데이터를 저장하는 비휘발성 메모리, 상기 유저 데이터를 버퍼링하고, 상기 스토리지 장치의 유휴 시간에 휘발성 셀 어레이에 대하여 결함 셀 검출을 위한 테스트를 수행하는 휘발성 메모리, 및 상기 유휴 시간에 상기 휘발성 메모리가 상기 테스트를 수행하도록 제어하고, 상기 테스트 수행에 기초하여 생성되는 테스트 정보를 상기 비휘발성 메모리에 저장하는 컨트롤러를 포함할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치의 동작 방법은, 외부 장치와의 데이터 송신 및 수신이 없는 유휴 상태에 진입하는 단계, 상기 휘발성 메모리에 대하여 결함 셀 검출을 위한 테스트를 수행하는 단계, 수행된 테스트 프로세스에 따른 테스트 정보를 상기 비휘발성 메모리에 저장하는 단계, 및 상기 테스트 정보에 따라 판단되는 결함 셀에 대한 리페어 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
본 개시의 기술적 사상에 따른 스토리지 장치 및 스토리지 장치의 동작 방법에 따르면, 완제품 상태의 스토리지 장치에서 휘발성 메모리를 테스트하고, 가속 조건에서 결함 셀을 검출함으로써, 스토리지 장치의 오류를 사전에 방지할 수 있다. 또한, 스토리지 시스템의 유휴 시간을 이용하여 휘발성 메모리를 테스트하고, 인터럽트 발생 시 테스트를 종료하고, 테스트 이력 또는 테스트 결과를 비휘발성 메모리에 저장하는바, 휘발성 메모리의 테스트에 따른 스토리지 장치의 성능 저하를 최소화할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 3은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 4는 본 개시의 예시적 실시예에 다른 스토리지 장치의 동작 방법에 있어서 결함 셀을 리페어 하는 단계의 일 예를 나타낸다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 장치의 일 구현 예를 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 휘발성 메모리를 나타내는 회로도이다.
도 7은 본 개시의 예시적 실시예에 따른 스토리지 장치에서 결함 셀이 소프트웨어적으로 리페어되는 것을 나타낸다.
도 8a 및 도 8b는 본 개시의 예시적 실시예들에 따른 스토리지 장치의 개략적인 동작을 설명하는 도면이다.
도 9는 본 개시의 예시적 실시예에 따른 휘발성 메모리의 메모리 셀 어레이를 나타내는 블록도이다.
도 10a 및 도 10b는 본 개시의 예시적 실시예에 따른 테스트 프로세스의 다양한 예들을 나타낸다.
도 11a는 본 개시의 예시적 실시예에 따른 스토리지 장치의 휘발성 메모리에 대한 테스트 동작을 예시적으로 나타낸다.
도 11b는 도 11a에서 인터럽트 발생 시 저장되는 테스트 이력을 예시적으로 나타낸다.
도 12는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다.
도 13a 및 도 13b는 본 개시의 예시적 실시에 따른 스토리지 장치에서, 휘발성 메모리의 유효 영역에 대하여 테스트가 수행될 때의 데이터 이전 방법을 나타낸다.
도 14는 본 개시의 예시적 실시예들에 따른 스토리지 장치의 구성 요소들의 동작을 나타내는 흐름도이다.
도 15는 본 개시의 예시적 실시예에 따른 스토리지 장치의 다른 구현 예를 나타내는 블록도이다.
도 16은 본 개시의 예시적 실시예에 따른 스토리지 장치의 다른 구현 예를 나타내는 블록도이다.
도 17은 본 개시의 예시적 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
도 18은 본 개시의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 1을 참조하면, 본 개시의 예시적 실시예에 따른 스토리지 시스템(1000)은 호스트(200) 및 스토리지 장치(100)를 포함할 수 있다. 스토리지 장치(100)는 솔리드 스테이트 드라이브(Solid State Drive, SSD)일 수 있다. 그러나, 이에 한정되는 것은 아니고, 스토리지 장치(100)는 휘발성 메모리를 포함하는 장치일 수 있다. 예를 들어, 스토리지 장치(100)는 임베디드 멀티미디어 카드(embedded multimedia card, eMMC), 유니버셜 플래시 스토리지(universal flash storage, UFS), 또는 CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick) 등 다양한 종류의 장치로 구현될 수 있다.
스토리지 장치(100)는 다양한 인터페이스를 통하여 호스트(200)와 통신할 수 있다. 호스트(200)는 스토리지 장치(100)의 데이터 처리 동작, 예를 들어, 데이터 독출 동작 또는 데이터 기록 동작 등을 요청할 수 있다. 일 실시예에서, 호스트(200)는 CPU, 프로세서, 마이크로프로세서 또는 어플리케이션 프로세서(Application Processor, AP) 등에 해당할 수 있다. 일 실시예에 따라, 호스트(200)는 시스템 온 칩(System-On-a-Chip, SoC)으로 구현될 수 있다.
스토리지 장치(100)와 호스트(200) 사이의 통신을 위한 인터페이스의 일 예로서, ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi media card), eMMC(embedded multi media card), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식이 적용될 수 있다.
스토리지 장치(100)는 컨트롤러(110), 비휘발성 메모리(NVM, 120) 및 휘발성 메모리(VM, 130)를 포함할 수 있다. 휘발성 메모리(130)는 스토리지 장치(100)의 메인 메모리로서 사용될 수 있다.
비휘발성 메모리(120)는 다수의 비휘발성 메모리 셀들을 포함할 수 있다. 일 실시예에서, 비휘발성 메모리(120)는 복수의 플래쉬 메모리 셀들을 포함할 수 있으며, 예를 들어, 복수의 플래쉬 메모리 셀들은 낸드(NAND) 플래쉬 메모리 셀들일 수 있다. 이하에서는, 복수의 메모리 셀들이 낸드(NAND) 플래쉬 메모리 셀들인 경우를 예로 하여 본 개시의 실시예들을 설명하기로 한다. 그러나, 본 개시의 기술적 사상은 이에 한정되지 않고, 복수의 메모리 셀들은 다양한 종류의 비휘발성 메모리 셀들일 수 있다. 예를 들어, 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM), MRAM(magnetic RAM)과 같은 저항형 메모리 셀들일 수 있다.
일 실시예에서, 비휘발성 메모리(NVM, 120)는 2차원(2D) 또는 3 차원(3D) 메모리 어레이일 수 있다. 3D 메모리 어레이는 실리콘 기판 위에 배치되는 활성 영역과, 메모리 셀들의 동작과 관련된 회로로서 상기 기판 상에 또는 상기 기판 내에 형성된 회로를 가지는 메모리 셀 어레이들의 적어도 하나의 물리적 레벨에 모놀리식으로 형성된다. 상기 용어 "모놀리식"은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미한다. 본 개시의 기술적 사상에 의한 일 실시예에서, 상기 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 버티칼 NAND 스트링들을 포함한다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다.
미국 특허공개공보 제7,679,133호, 동 제8,553,466호, 동 제8,654,587호, 동 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3D 메모리 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들간에 공유되어 있는 3D 메모리 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다.
컨트롤러(110)는 스토리지 장치(100)의 전반적인 동작을 제어하며, 비휘발성 메모리(120)에 대해 데이터 기록 및 독출 등의 메모리 동작을 제어한다.
휘발성 메모리(130)는 스토리지 장치(100)의 데이터 기록 및 독출 동작 시 데이터를 임시적으로 저장할 수 있다. 예컨대 휘발성 메모리(130)는 비휘발성 메모리(120)에 대한 기록 데이터 또는 독출 데이터, 다시 말해 유저 데이터를 버퍼링할 수 있다. 휘발성 메모리(130)는 또한 스토리지 장치(100)의 구동과 관련한 필수적인 정보를 저장할 수 있다. 예컨대, 휘발성 메모리(130)는 비휘발성 메모리(120)의 메타 데이터를 저장할 수 있다. 일 예로서, 휘발성 메모리(130)는 DRAM(Dynamic Random access Memory) 또는 SRAM(Static Random access Memory) 등으로 구현될 수 있다. 또한, 일 예로서, 휘발성 메모리(130)는 기록 데이터를 임시적으로 저장하는 기록 데이터 메모리와 독출 데이터를 임시적으로 저장하는 독출 데이터 메모리를 포함할 수 있다. 또한, 실시예에 있어서, 휘발성 메모리(130)는 컨트롤러(110) 내부에 구비될 수도 있다.
본 개시의 실시예에 따른 휘발성 메모리(130)는 스토리지 장치(100)가 유휴(Idle) 상태일 때, 유휴 시간 동안 결함 셀 검출을 위한 테스트를 수행하고, 검출된 결함 셀을 리페어할 수 있다. 스토리지 장치(100)의 유휴 상태는 호스트(200)와 스토리지 장치(100)간에 데이터 및 신호의 송수신이 발생하지 않는 저전력 상태, 슬립 상태 등을 포함할 수 있다.
예를 들어, 휘발성 메모리(130)는 휘발성 메모리 셀에 대하여 리프레시 특성, 주파수 특성, AC(Alternating Current) 파라미터 및 DC(Direct Current) 파라미터 특성 중 적어도 하나의 특성을 테스트할 수 있다. 그러나 이에 제한되는 것은 아니며, 휘발성 메모리(130)는 다양한 종류의 특성을 테스트할 수 있다.
휘발성 메모리(130)는 미리 설정된 다양한 조건을 기초로, 메모리 셀 어레이에 테스트 패턴을 기입하고 메모리 셀 어레이로부터 기입된 데이터를 독출함으로써, 상기 특성을 테스트할 수 있다. 한편, 본 개시의 실시예에서 의미하는 결함 셀은 현재 셀 특성이 기준치에 미치지 못하여 데이터 오류를 발생할 수 있는 메모리 셀 뿐만이 아니라, 추후 셀 특성이 나빠져 데이터 오류를 발생할 가능성이 있는 메모리 셀, 예컨대 위크 셀을 포함한다.
컨트롤러(110)는 스토리지 장치(100)가 유휴 상태에 진입하였음을 감지하고, 휘발성 메모리(130)가 테스트를 수행하도록 휘발성 메모리에 테스트 수행을 지시하는 테스트 제어 신호(TCS)를 제공할 수 있다. 실시예에 있어서 컨트롤러(110)는 호스트(200)로부터 휘발성 메모리(130)에 대한 테스트 요청을 수신하고, 테스트 요청 수신 후의 유휴 시간에 상기 휘발성 메모리(130)에 테스트 제어 신호(TCS)를 제공할 수 있다.
컨트롤러(110)는 미리 설정된 테스트 알고리즘을 기초로 테스트 제어 신호(TCS)를 생성할 수 있다. 테스트 알고리즘은 테스트 코드를 포함하는 펌웨어 또는 소프트웨어로 구현될 수 있다. 또는, 테스트 알고리즘은 하드웨어적으로 구현될 수 있다.
테스트 제어 신호(TCS)는 테스트 커맨드, 테스트가 수행될 영역에 대한 어드레스, 테스트 스탭(또는 테스트 종류), 테스트 조건 등을 포함할 수 있다. 이때, 테스트 조건은 결함 셀 발생을 높이기 위한 가속 조건(또는 워스트 조건)으로 설정될 수 있다. 예를 들어, 스토리지 장치(100)의 노멀 동작 시 적용되는 리프레시 주기가 30ms인 경우, 가속 조건은 30ms보다 긴 주기, 예컨대 80ms 등으로 설정될 수 있다.
컨트롤러(110)는 테스트 결과 또는 테스트 이력(history)을 포함하는 테스트 정보(TIF)를 비휘발성 메모리(120)에 저장할 수 있다.
실시예에 있어서, 컨트롤러(110)는 스토리지 장치(100)에 인터럽트 발생 시, 휘발성 메모리(130)가 테스트를 중단하도록 제어하고, 인터럽트 발생 시까지 수행된 테스트 프로세스에 대한 테스트 정보(TIF)를 비휘발성 메모리(120)에 저장할 수 있다. 실시예에 있어서, 호스트(110)로부터의 데이터 기록 요청 또는 독출 요청에 따라 인터럽트가 발생할 수 있다. 또는 스토리지 장치(100)의 내부 상황에 기인하여 인터럽트가 발생할 수 있다.
실시예에 있어서, 컨트롤러(110)는 스토리지 장치(100)에 서든 파워 오프 발생 시, 휘발성 메모리(130)가 테스트를 중단하도록 제어하고, 이전까지 수행된 테스트 프로세스에 대한 테스트 정보(TIF)를 비휘발성 메모리(120)에 저장할 수 있다.
테스트 정보(TIF)에 포함되는 테스트 이력은 휘발성 메모리(130)의 복수의 영역 중 테스트가 수행된 영역에 대한 어드레스 정보를 포함할 수 있다. 또한, 테스트 이력은 결함 셀 검출을 위하여 차례로 수행되는 복수의 테스트 스텝 중 인터럽트 발생 시까지 수행된 적어도 하나의 테스트 스텝에 대한 정보를 포함할 수 있다. 또한 휘발성 메모리(130)가 테스트 조건을 가변하며 복수회 테스트를 수행하는 경우, 테스트 이력은 복수의 테스트 조건 중 인터럽트 발생시까지 적용된 테스트 조건에 대한 정보를 포함할 수 있다. 예를 들어, 테스트 이력은, 인터럽트 발생 시 테스트가 수행된 영역, 테스트 스텝 및 테스트 조건에 대한 정보를 포함할 수 있다.
실시예에 있어서, 상기 인터럽트에 따른 동작이 수행된 이후의 유휴 시간에 컨트롤러(110)는 비휘발성 메모리(120)에 저장된 테스트 정보(TIF)를 기초로 이전 유휴 시간에 수행된 테스트 프로세스를 검토하고, 검토 결과를 기초로 현재 유휴 시간에 휘발성 메모리(130)에 대하여 수행될 테스트 프로세스를 결정할 수 있다.
실시예에 있어서, 컨트롤러(110)는 휘발성 메모리(130)가 테스트를 수행하는 중에 스토리지 장치(100)의 서든 파워 오프를 감지하면, 휘발성 메모리(130)가 테스트를 중단하도록 제어하고, 서든 파워 오프 시까지 수행된 테스트 프로세스에 대한 테스트 정보(TIF)를 비휘발성 메모리(120)에 저장할 수 있다.
실시예에 있어서, 검출된 결함 셀에 대한 리페어는 하드웨어 리페어 또는 소프트 웨어 리페어를 포함할 수 있다. 예를 들어, 휘발성 메모리(130)가 내부의 휘발성 셀 어레이에서 결함 셀을 리던던시 셀로 대체함으로써, 결함 셀을 하드웨어 적으로 리페어할 수 있다. 휘발성 메모리(130)로부터 독출되는 데이터가 결함 셀에 대응하는 비트를 포함하는 경우, 컨트롤러(110)가 상기 데이터에 방어코드(recovery code)를 적용함으로써, 결함 셀을 소프트웨어적으로 리페어할 수 있다.
실시예에 있어서, 컨트롤러(110)는 휘발성 메모리(130)에 대한 테스트가 주기적으로 수행되도록 제어할 수 있다. 예를 들어, 컨트롤러(110)는 몇 개월 간격 상기 테스트가 수행되도록 제어할 수 있다. 이 때에도 테스트는 스토리지 장치(100)가 유휴 상태일 때 수행될 수 있다.
전술한 바와 같이, 휘발성 메모리(130)는 스토리지 장치(100)의 구동을 위한 주요 데이터를 저장할 수 있다. 따라서, 휘발성 메모리(130)에 결함이 발생하는 경우 스토리지 장치(100)의 치명적인 데이터 손실을 유발할 수 있다. 본 개시의 실시예에 따른 스토리지 장치(100)는 휘발성 메모리(130)를 가속 조건으로 테스트함으로써 결함 셀을 사전에 검출하고 결함 셀을 리페어 처리함으로써, 스토리지 장치(100)의 불량을 차단할 수 있다. 또한, 유휴 시간에 테스트를 수행할 뿐만 아니라 인터럽트 발생 시에는 테스트 정보를 비휘발성 메모리에 저장하고, 테스트를 중단함으로써, 휘발성 메모리(130)의 무결성을 유지하면서도 스토리지 장치(100)의 성능 저하를 최소화할 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다. 도 2의 동작 방법은 도 1의 스토리지 장치(100)에 적용될 수 있다. 따라서, 도 1을 함께 참조하여 설명하기로 한다.
도 2를 참조하면, 스토리지 장치(100)는 유휴 상태에 진입할 수 있다(S110). 예컨대 컨트롤러(110)는 미리 설정된 시간 구간 동안 호스트(200)로부터 독출 또는 기입 요청이 수신되지 않는 경우, 스토리지 장치(100)가 유휴 상태에 진입하였음을 감지할 수 있다. 다른 예로서, 호스트(200)가 스토리지 장치(100)에 유휴 상태 진입을 요청할 수도 있다.
스토리지 장치(100)가 유휴 상태에 진입하면, 스토리지 장치(100)는 휘발성 메모리(120)에 대하여 결함 셀을 검출하기 위한 테스트를 수행할 수 있다(S120). 전술한 바와 같이, 미리 설정된 테스트 알고리즘을 기초로 휘발성 메모리(130)의 리프레시 특성, 주파수 특성, AC 파라미터 및 DC 파라미터 특성 등이 테스트될 수 있다. 실시예에 있어서, 스토리지 장치(100)는 미리 설정된 가속 조건을 기초로, 휘발성 메모리(130)에 테스트 패턴을 기입하고, 기입된 데이터를 독출함으로써, 상기 특성들을 테스트할 수 있다.
스토리지 장치(100)는 휘발성 메모리(120)에 대하여 수행된 테스트에 대한 테스트 정보(TIF)를 비휘발성 메모리(120)에 저장할 수 있다(S130). 테스트 정보(TIF)는 테스트 결과 또는 테스트 이력을 포함할 수 있다. 실시예에 있어서, 스토리지 장치(100)에 인터럽트가 발생하는 경우, 인터럽트 발생 시까지 수행된 테스트 프로세스에 대한 테스트 정보가 비휘발성 메모리(120)에 저장될 수 있다. 테스트 프로세스는 휘발성 메모리(130)의 복수의 영역, 복수의 테스트 스탭 및 복수의 테스트 조건에 의하여 구별될 수 있다. 따라서, 테스트 이력은 인터럽트 발생 시 테스트가 수행되던 영역, 테스트 스탭 및 테스트 조건을 포함할 수 있다. 또한 테스트 결과는 인터럽트 발생 시까지 수행된 테스트 프로세스에 따른 패스/페일 결과를 포함할 수 있다. 또는 결함 셀이 발생한 경우, 테스트 결과는 결함 셀에 대한 어드레스 정보를 포함할 수 있다.
스토리지 장치(100)는 테스트를 통해 검출된 휘발성 메모리(130)의 결함 셀을 리페어할 수 있다(S140). 스토리지 장치(100)는 결함 셀을 리던던시 셀로 대체함으로써, 결함 셀을 하드웨어적으로 리페어할 수 있다. 다시 말해, 휘발성 메모리(130)의 메모리 셀 어레이는 리던던시 영역을 포함할 수 있으며, 결함 셀이 리던던시 셀로 대체될 수 있다. 또는, 스토리지 장치(100)는 결함 셀에 대응하는 비트에 방어 코드를 적용함으로써 결함 셀을 소프트웨어적으로 리페어할 수 있다.
결함 셀에 대한 소프트웨어적인 리페어는 오류 비트를 리커버리함을 의미할 수 있다. 예컨대, 스토리지 장치(100)는 휘발성 메모리(130)로부터 독출되는 데이터가 결함 셀에 대응하는 비트를 포함하는 경우, 상기 독출되는 데이터에 방어 코드를 적용함으로써, 데이터의 오류를 방지하거나 오류를 가지는 데이터를 복구할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다. 구체적으로, 도 3은 휘발성 메모리(130)에 대한 테스트 수행 중 스토리지 장치(100)에 인터럽트가 발생하는 경우의 스토리지 장치(100)의 동작을 나타내며, 도 2의 S120, S130 및 S140 단계를 보다 상세하게 나타낸다.
도 3을 참조하면, 스토리지 장치(100)는 이전에 수행된 테스트 이력을 검토할 수 있다(S21). 스토리지 장치(100)는 이전에 수행된 테스트에서 테스트가 수행된 영역, 테스트 스탭 및 테스트 조건 등을 검토할 수 있다. 실시예에 있어서, 이전에 테스트 수행 중 인터럽트에 의하여 테스트가 중단된 경우가 없다면, S21 단계는 생략될 수 있다.
스토리지 장치(100)는 이후에 수행될 테스트 프로세스를 결정하고, 테스트 프로세스에 따라 테스트를 수행할 수 있다(S22). 예컨대, 스토리지 장치(100)는 휘발성 메모리(130)의 복수의 영역 중 테스트가 수행될 영역, 테스트 스탭 및 테스트 조건을 결정할 수 있다. 스토리지 장치(100)는 결정된 테스트 프로세서에 따라 테스트를 수행할 수 있다. 휘발성 메모리(130)는 컨트롤러(110)의 제어 하에 상기 프로세서에 따라 테스트를 수행할 수 있다.
스토리지 장치(100)는 테스트 수행 중 인터럽트 발생을 감지할 수 있다(S31). 예컨대 스토리지 장치(100)는 휘발성 메모리(130)의 하나의 영역에 대하여 테스트가 수행된 후, 인터럽트가 발생하였는지를 체크할 수 있다.
인터럽트가 발생한 경우, 스토리지 장치(100)는 비휘발성 메모리에 현재까지 수행된 테스트와 관련한 테스트 정보, 예컨대 테스트 결과 또는 테스트 이력을 저장할 수 있다(S32). 스토리지 장치(100)는 테스트 정보를 비휘발성 메모리(120)에 저장 후, 휘발성 메모리(130)에 대한 테스트 수행을 종료하고, 인터럽트에 따른 동작을 수행할 수 있다. 예컨대 스토리지 장치(100)는 노멀 상태에 진입하고 노멀 동작, 예컨대 데이터 독출 또는 데이터 기입 동작을 수행할 수 있다.
인터럽트가 발생하지 않았다며, 스토리지 장치(100)는 계속하여 휘발성 메모리(130)에 대한 테스트를 수행하고, 휘발성 메모리(130)의 전 영역에 대하여 테스트가 완료되면 결함 셀이 발생하였는지 여부를 판단할 수 있다(S41). 실시예에 있어서, 컨트롤러(110)는 휘발성 메모리(130)의 복수의 영역 각각에 대하여 테스트가 완료될 때마다 결함 셀 발생 여부를 판단할 수 있다.
결함 셀이 발생하였다면, 스토리지 장치(100)는 결함 셀을 리페어할 수 있다(S42). 도 2를 참조하여 전술한 바와 같이, 스토리지 장치(100)는 하드웨어적 또는 소프트웨어적으로 결함 셀을 리페어할 수 있다.
이후, 스토리지 장치(100)는 테스트를 종료하거나 또는 계속하여 휘발성 메모리(130)에 대하여 테스트를 수행할 수 있다. 스토리지 장치(100)는 테스트 조건을 달리하거나, 테스트 스탭을 변경하는 등 테스트 프로세스를 변경하고, 변경된 테스트 프로세스에 따라 테스트를 수행할 수 있다.
도 4는 본 개시의 예시적 실시예에 다른 스토리지 장치의 동작 방법에 있어서 결함 셀을 리페어 하는 단계의 일 예를 나타낸다.
전술한 바와 같이, 결함 셀 리페어 단계(예컨대 도 3의 S42)에서, 하드웨어적 또는 소프트웨어적인 리페어가 수행될 수 있다.
도 4를 참조하면, 스토리지 장치(100)는 검출된 결함 셀의 개수를 카운트하고(S141), 결함 셀의 개수가 미리 설정된 값(predefined value)(C1)을 초과하는지 판단할 수 있다(S142).
스토리지 장치(100)는 결함 셀 개수가 미리 설정된 값(C1)을 초과하면 결함 셀들을 리던던시 셀들로 대체함으로써, 하드웨어적으로 결함 셀을 리페어할 수 있다.
결함 셀 개수가 미리 설정된 값(C1) 이하이면, 결함 셀에 대응하는 비트에 방어 코드를 적용할 수 있다(S144). 다시 말해, 스토리지 장치(100)는 독출된 데이터가 결함 셀에 대응하는 비트를 포함하는 경우, 독출된 데이터에 방어 코드를 적용함으로써, 소프트웨어적으로 결함 셀을 리페어할 수 있다.
도 4를 참조하여 설명한 바와 같이, 스토리지 장치(100)는 미리 설정된 조건을 기초로 선택적으로 리페어 방법을 적용할 수 있다. 그러나, 이는 일 예를 나타낸 것일 뿐이며, 리페어 방법을 적용하는 것에 있어서 다양한 리페어 알고리즘이 적용될 수 있다. 예컨대, 결함 셀이 검출된 때의 테스트 조건에 따라서 또는 결함 셀의 결함 유형(예컨대 어떤 종류의 페일이 발생하였는지 등)에 따라서 결함 셀에 대하여 선택적으로 하드웨어적 리페어 또는 소프트웨어적 리페어가 적용될 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 장치의 일 구현 예를 나타내는 블록도이다.
도 5를 참조하면, 스토리지 장치(100a)는 컨트롤러(110a), 비휘발성 메모리(120) 및 휘발성 메모리(130)를 포함할 수 있다. 컨트롤러(110a)는 프로세서(111), RAM(112), 데이터 복구 회로(113), 호스트 인터페이스(114), 휘발성 메모리 인터페이스(115) 및 비휘발성 메모리 인터페이스(116)를 포함할 수 있으며, 상기 구성 요소들은 버스(117)를 통해 서로 통신할 수 있다. 이외에도, 컨트롤러(110a)는 DMA(Direct Memory Access) 매니저 등과 같은 다른 구성 요소들을 더 포함할 수 있다. 한편 실시예에 있어서, 휘발성 메모리 인터페이스(115) 및 비휘발성 메모리 인터페이스(116)는 하나의 메모리 인터페이스로 구현될 수도 있다.
호스트 인터페이스(114)는 호스트(200)와 컨트롤러(110a) 사이의 인터페이스를 제공할 수 있다. 호스트(200)와 컨트롤러(110a)는 다양한 표준 인터페이스들(Standardized Interfaces) 중 적어도 하나를 통해 연결될 수 있다. 표준 인터페이스들은 USB(Universal Serial Bus), eMMC(embedded Multi-Media Card), MMC(MultiMediaCard), PCI-E(PCI Express), ATA(AT Attachment), SATA(Serial AT Attachment), e-SATA(external SATA), PATA(Parallel AT Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics), IEEE 1394, Card 인터페이스 등과 같은 다양한 인터페이스를 포함할 수 있다.
프로세서(111)는 컨트롤러(110a)의 전반적인 동작을 제어할 수 있다. 프로세서(111)는 중앙 처리 장치나 마이크로 프로세서 등을 포함할 수 있다. 프로세서(111)는 컨트롤러(110a)를 구동하기 위한 펌웨어(firmware) 또는 소프트웨어를 실행할 수 있다. 펌웨어(firmware)는 RAM(112)에 로딩되어 실행될 수 있으며, 휘발성 메모리(130)의 테스트에 관련한 알고리즘을 포함하는 프로그램 코드, 즉 테스트 코드를 포함할 수 있다. 펌웨어는 또한 플래시 변환 계층(flash translation layer; FTL)을 포함할 수 있다.
RAM(112)은 프로세서(111)의 제어에 따라 동작하며, 워킹 메모리, 버퍼 메모리, 캐시 메모리 등으로 사용될 수 있다. RAM(112)에는 컨트롤러(110a)를 제어하기 위한 소프트웨어 또는 펌웨어가 로딩될 수 있다. RAM(112)은 DRAM(dynamic random access memory) 또는 SRAM(static random access memory) 등의 휘발성 메모리로 구현될 수 있다. 또는 RAM(112)은 RRAM(resistive RAM), PRAM(phase change RAM) 또는 MRAM(magnetic RAM)과 같은 저항형 메모리로 구현될 수 있다.
휘발성 메모리 인터페이스(115)는 컨트롤러(110a)와 휘발성 메모리(130) 사이의 인터페이스를 제공한다. 휘발성 메모리 인터페이스(116)는 비휘발성 메모리(120)에 기입될 데이터 또는 비휘발성 메모리(120)로부터 독출된 데이터는 비휘발성 메모리 인터페이스(116)를 통해 휘발성 메모리(130)에 임시적으로 저장, 즉 버퍼링될 수 있다.
비휘발성 메모리 인터페이스(116)는 컨트롤러(110a)와 비휘발성 메모리(120) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 컨트롤러(110a)는 비휘발성 메모리 인터페이스(116)를 통하여 비휘발성 메모리(120)와 데이터를 송수신할 수 있다.
데이터 복구 회로(113)는 휘발성 메모리(130) 또는 비휘발성 메모리(120)로부터 독출된 독출 데이터에 오류가 있을 대, 데이터를 복구할 수 있다. 실시예에 있어서, 데이터 복구 회로(113)는 도 2를 참조하여 전술한 바와 같이, 휘발성 메모리(130)의 결함 셀에 대응하는 비트를 포함하는 데이터에 대하여 방어 코드를 적용함으로써 데이터를 복구할 수 있다. 실시예에 있어서, 데이터 복구 회로(113)는 ECC(Error Checking and Correction) 엔진을 포함할 수 있으며, 비휘발성 메모리(120)로부터 독출되는 데이터에 대하여 ECC를 수행할 수 있다.
비휘발성 메모리(120)는 호스트로부터 제공되는 기록 데이터를 저장할 수 있으며, 또한 전술한 테스트 코드를 저장할 수 있다. 비휘발성 메모리(120)는 또한, 휘발성 메모리(120)에 대한 테스트 정보(TIF)를 저장할 수 있다.
휘발성 메모리(120)는, 예컨대 DRAM으로 구현될 수 있다. 휘발성 메모리(120)는 메모리 블록(11)을 포함할 수 있다. 메모리 블록(11)은 휘발성 메모리(130)의 노멀 동작에 따라 기입 데이터가 저장되는 영역으로서, 컨트롤러(110a)가 주소를 인식할 수 있는 영역이다. 메모리 블록(11)은 메타 데이터 영역(131) 및 유저 데이터 영역(132)을 포함할 수 있다. 메타 데이터 영역(131)에는 비휘발성 메모리(120)에 대한 메타 데이터가 저장되고, 유저 데이터 영역(132)에는, 비휘발성 메모리(120)의 독출 데이터 또는 기록 데이터, 즉 유저 데이터가 버퍼링될 수 있다. 메타 데이터 영역(131) 및 유저 데이터 영역(132)은 물리적으로 구분되는 것은 아니며, 각 영역에 할당된 어드레스로 구분될 수 있다. 그러나 이에 제한되는 것은 아니며, 컨트롤러(110a)가 인식할 수 있는 영역들 중, 메타 데이터가 저장된 영역은 메타 데이터 영역(131)으로, 이외의 영역은 유저 데이터 영역(132)으로 구분될 수도 있다.
휘발성 메모리(130)는 및 리던던시 블록(12)을 더 포함할 수 있다. 리던던시 블록(12)은 특정한 조건에서, 메모리 블록(MBLK)의 일부 영역을 대체하는 영역으로서, 휘발성 메모리(130)의 결함 셀에 대하여 하드웨어적인 리페어가 수행되는 경우, 결함 셀은 리던던시 영역의 리던던시 셀로 대체될 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 휘발성 메모리를 나타내는 회로도이다.
도 6을 참조하면, 휘발성 메모리(130a)는 메모리 셀 어레이(10), 제어 로직(20), 로우 디코더(30), 센스 엠프 회로(40), 입출력 회로(50), 리페어 회로(60), 어드레스 레지스터(70)를 포함할 수 있다. 이외에도 휘발성 메모리(130a)는 데이터 기록 및 독출 동작에 사용되는 다른 구성 요소를 더 포함할 수 있다.
메모리 셀 어레이(10)는 복수의 비트 라인들(BL) 및 복수의 워드 라인들(WL)에 연결되는 복수의 휘발성 메모리 셀(MC)을 포함할 수 있다. 메모리 셀 어레이(10)는 메모리 블록(MBLK) 및 리던던시 블록(RBLK)을 포함할 수 있다. 메모리 셀 어레이(10)에 대한 테스트를 통해 메모리 블록(MBLK)의 일부 메모리 셀(MC)이 결함 셀로 판단되는 경우, 결함 셀은 리던던시 셀(RC)로 대체될 수 있다. 예컨대 결함 셀에 대하여 데이터 기록이 요청되는 경우 대체된 리던던시 셀(RC)에 데이터가 기록되고, 결함 셀 대하여 데이터 독출이 요청되는 경우, 대체된 리던던시 셀(RC)로부터 데이터가 독출될 수 있다.
제어 로직(20)은 휘발성 메모리(130a)의 전반적인 동작을 제어할 수 있다. 수신된 커맨드(CMD)를 디코딩하여, 디코딩된 명령 신호를 내부적으로 발생할 수 있다. 예컨대 제어 로직(20)은 기입 커맨드(WCMD), 독출 커맨드(RCMD) 및 테스트 커맨드(TCMD)를 수신할 수 있다. 제어 로직(20)은 테스트 커맨드(TCMD)에 응답하여, 메모리 셀 어레이(10)에 대한 테스트가 수행되도록 휘발성 메모리(130a)를 제어할 수 있다.
어드레스 레지스터(70)는 외부에서 입력되는 어드레스 신호(ADDR)를 일시적으로 저장할 수 있다. 이후, 어드레스 레지스터(70)는 로우 어드레스(X-ADDR)를 로우 디코더(30)에 전달하고, 컬럼 어드레스(Y-ADDR)를 센스 엠프 회로(40)에 전달할 수 있다. 어드레스 레지스터(70)는 또한 로우 어드레스(X-ADDR)를 리페어 회로(60)에 제공할 수 있다.
로우 디코더(30)는 로우 어드레스(X-ADDR)에 응답하여 워드라인(WL)을 선택할 수 있다.
센스 엠프 회로(40)는 메모리 셀 어레이(10)에 데이터를 기입하거나 메모리 셀 어레이(10)로부터 데이터를 독출할 수 있다. 센스 엠프 회로(40)는 기입 회로 및 독출 회로를 포함할 수 있다. 센스 엠프 회로(40)는 수신되는 칼럼 어드레스(Y-ADDR)에 따라 복수의 비트 라인들(BLs) 중 선택되는 비트 라인에 연결될 수 있다.
입출력 회로(50)는 메모리 셀 어레이(10)로부터 독출되는 데이터(DATA)를 휘발성 메모리(130a)의 외부, 예컨대 컨트롤러(도 1의 110)에 제공하거나, 외부로부터 수신되는 데이터(DATA)를 센스 엠프 회로(40)에 제공할 수 있다.
리페어 회로(60)는 메모리 셀 어레이(10)에 대한 테스트 결과를 기초로 결함 셀을 리던던시 셀로 대체할 수 있다. 리페어 회로(60)는 결함 셀에 대응하는 리던던시 셀에 대한 어드레스 맵핑 정보, 다시 말해 리페어 정보를 저장하고, 결함 셀에 대한 액세스 요청이 있는 경우, 대응하는 리던던시 셀이 엑세스 되도록 제어할 수 있다. 이를 위해, 리페어 회로(60)는 리페어 정보 저장 회로(61)를 구비할 수 있다. 리페어 정보 저장 회로(61)는 예컨대 OTP(one time programmable) 메모리로 구현될 수 있다.
어드레스 레지스터(70)로부터 제공되는 로우 어드레스(X-ADDR)가 리페어 정보 저장 회로(61)에 저장된 맵핑 정보에 대응하는 경우, 어드레스 레지스터(70)는 대체된 리던던시 셀에 대한 어드레스, 다시 로우 어드레스(X-ADDR)에 대한 대체 어드레스(RADDR)를 로우 디코더(30)에 제공할 수 있다. 로우 디코더(30)는 대체 어드레스(RADDR)에 대응하는 워드 라인(WL)을 선택할 수 있다. 이로써, 결함 셀이 하드웨어적으로 리페어될 수 있다.
한편, 도 6에서는, 결함 셀을 포함하는 워드 라인(WL)이 다른 워드 라인(WL)으로 대체됨으로써, 결함 셀을 포함하는 로우 영역이 리던던시 블록(12)의 로우 영역으로 대체되는 경우를 도시하였으나, 이에 제한되는 것은 아니며, 결함 셀에 대한 비트 라인(BL)이 다른 비트 라인(BL)라인으로 대체됨으로써, 결함 셀을 포함하는 칼럼 영역이 리던던시 블록(12)의 칼럼 영역으로, 또는 결함 셀에 대한 워드 라인(WL) 및 비트 라인(BL)이 대체됨으로써, 결함 셀이 리던던시 셀(RC)로 대체될 수 잇다.
도 7은 본 개시의 예시적 실시예에 따른 스토리지 장치에서 결함 셀이 소프트웨어적으로 리페어되는 것을 나타낸다.
도 7을 참조하면, 휘발성 메모리(130)의 독출 데이터(DATA)가 결함 셀에 대응하는 비트를 포함하는 경우, 데이터 복구 회로(113)는 상기 독출 데이터(DATA)를 수신하고, 상기 독출 데이터(DATA)의 오류를 검증할 수 있다. 독출 데이터(DATA)에 오류가 발생하였다고 판단되면, 데이터 복구 회로(113)는 페일 비트 정보(FBIF)를 기초로 독출 데이터(DATA)에 방어 코드를 적용할 수 있다. 페일 비트 정보(FBIF)는 테스트 결과 중 하나일 수 있다. 예를 들어, 페일 비트 정보(FBIF)는 결함 셀, 예컨대 테스트 페일 셀에 대한 어드레스 및 페일 유형을 포함할 수 있다. 예를 들어, 결함 셀이 데이터 반전 페일을 가지는 경우, 데이터 리커버리 회로(113)는 독출 데이터(DATA)의 복수의 비트 중 결함 셀에 대응하는 비트의 데이터를 반전시킬 수 있다. 이로써, 데이터 리커버리 회로(113)는 오류가 발생한 데이터를 정상 데이터로 복구할 수 있다.
도 7에서, 페일 비트 정보(FBIF)는 데이터 리커버리 회로(113)가 저장하고, 이용하는 것으로 도시되었으나, 이에 제한되는 것은 아니고, 페일 비트 정보(FBIF)는 RAM(도 5의 112)에 저장될 수 있다. 복수의 페일 비트에 대하여 페일 비트 정보(FBIF)가 RAM(112)에 저장될 수 있으며, 데이터 복구 과정에서, 데이터 리커버리 회로(113)는 RAM(112)를 엑세스하여 원하는 페일 비트에 대한 페일 비트 정보(FBIF)를 독출할 수 있다. 페일 비트 정보(FBIF)는 또한 테스트 결과로서 비휘발성 메모리(도 5의 120)에 저장될 수 있다.
도 8a 및 도 8b는 본 개시의 예시적 실시예들에 따른 스토리지 장치의 개략적인 동작을 설명하는 도면이다. 도 8a는 휘발성 메모리(130)에 대한 테스트가 수행되는 과정을 나타내고, 도 8b는 인터럽트 발생에 의하여 휘발성 메모리(130)에 대한 테스트가 종료되는 과정을 나타낸다.
도 8a를 참조하면, 휘발성 메모리(130)에 대한 테스트 알고리즘이 펌웨어 또는 소프트웨어적으로 구현될 수 있으며, 테스트 알고리즘을 포함하는 테스트 코드는 비휘발성 메모리(120)에 저장될 수 있다.
스토리지 장치(100a)가 유휴 상태에 진입하면, 컨트롤러(110a)는 비휘발성 메모리(120)으로부터 테스트 코드를 독출할 수 있다. 테스트 코드는 RAM(112)에 로딩되고, 프로세서(111)는 테스트 코드를 실행(execute)할 수 있다. 스토리지 장치(100a)에서, 휘발성 메모리(130)의 테스트 수행 및 종료와 관련한 컨트롤러(110a)의 동작은 프로세서(111)가 RAM(112)에 로딩된 테스트 코드를 실행함으로써 수행될 수 있다. 프로세서(111)는 테스트 수행을 지시하는 테스트 제어 신호(TCS)를 생성하고, 테스트 제어 신호(TCS)를 휘발성 메모리(130)에 제공할 수 있다. 테스트 제어 신호(TCS)는 테스트가 수행될 영역에 대한 어드레스, 테스트 스탭(또는 테스트 종류), 테스트 조건 등을 포함할 수 있다. 휘발성 메모리(130)는 컨트롤러(110a)로부터 제공되는 테스트 제어 신호(TCS)를 기초로 테스트를 수행할 수 있다.
도 8b를 참조하면, 스토리지 장치(100a)에 인터럽트가 발생하면, 프로세서(111)는 테스트 종료 신호(TES)를 생성하고, 이를 휘발성 메모리(130)에 제공할 수 있다. 휘발성 메모리(130)는 테스트를 종료할 수 있다. 휘발성 메모리(130)는 또한 수행된 테스트 프로세스에 따른 테스트 결과(TRS)를 컨트롤러(110a)에 제공할 수 있다. 테스트 컨트롤러(110a)는 테스트 정보(TIF)를 비휘발성 메모리(120)에 저장할 수 있다. 테스트 정보(TIF)는 인터럽트 발생시까지 수행된 테스트 프로세스에 대한 테스트 이력(TH)을 포함할 수 있다. 테스트 정보(TIF)는 또한 테스트 결과(TRS)를 포함할 수 있다.
테스트 코드는 RAM(112)으로부터 언로드될 수 있다. 실시예에 있어서, 테스트 수행 중 테스트 코드가 변경된 경우, 변경된 테스트 코드가 비휘발성 메모리(120)에 저장됨으로써, 테스트 코드가 업데이트될 수 있다.
실시예에 있어서, 테스트 코드는 사용자에 의하여 업데이트 될 수도 있다. 호스트(도 1의 200)로부터 변경된 테스트 코드가 기입 데이터로서 수신되고, 비휘발성 메모리(120)에 저장됨으로써, 테스트 코드가 업데이트될 수 있다.
전술한 바와 같이, 스토리지 장치(100a)는 펌웨어 또는 소프트웨어로 구현되는 테스트 코드를 비휘발성 메모리(120)에 저장하고, 유휴 시간에 휘발성 메모리(130)에 대한 테스트를 수행할 수 있다. 따라서, 휘발성 메모리(130)는 스토리지 장치(100a)의 패키징 단계뿐만이 아니라 스토리지 장치(100a)가 전자 시스템에 탑재되어, 사용되는 단계에서도 지속적으로 테스트를 수행하고 결함 셀을 검출할 수 있다. 또한, 테스트 코드는 비휘발성 메모리(120)에 저장되므로 업데이트가 용이할 수 있다. 이에 따라 스토리지 장치(100a)에 새로운 테스트 알고리즘이 적용될 수 있으며, 휘발성 메모리(130)에 예상치 못한 오류가 발생하여도 새로운 테스트 알고리즘을 적용하여 결함 셀을 리페어할 수 있는바, 휘발성 메모리(130)의 데이터 오류에 대하여 능동적인 대응이 가능하다.
도 9는 본 개시의 예시적 실시예에 따른 휘발성 메모리의 메모리 셀 어레이를 나타내는 블록도이다.
도 9를 참조하면 휘발성 메모리(130)의 메모리 셀 어레이(10)는 테스트가 수행되는 단위를 기초로 하여 복수의 영역(R00 내지 R99)으로 구분될 수 있다. 도 9에는 메모리 셀 어레이(10)가 100개의 영역으로 구분되는 것으로 도시되었으나, 이는 설명의 편의를 위한 것이며, 복수의 영역의 개수는, 메모리 셀 어레이(10)의 용량 및 테스트 수행 단위를 기초로 결정될 수 있다. 예를 들어, 메모리 셀 어레이(10)의 용량(예컨대 저장 가능한 데이터 사이즈)이 총 2GB(GigaByte)이고, 테스트가 1MB(Mega Byte) 단위로 수행될 경우, 메모리 셀 어레이(10)는 2000개의 영역으로 구분될 수 있다. 인터럽트 발생 시, 스토리지 장치(도 1의 100)는 테스트가 수행되는 영역에 대한 테스트가 완료된 후, 인터럽트에 따른 동작을 수행할 수 있다. 따라서, 스토리지 장치(100)의 성능에 영향을 미치지 않도록 테스트 수행 단위는 메모리 셀 어레이(10)의 전체 용량 대비 상대적으로 매우 작게 설정될 수 있다.
복수의 영역(R11 내지 R100)에 대하여 순차적으로 테스트가 수행될 수 있다.스토리지 장치(도 1의 100)의 유휴 시간에, 일 영역에서 테스트가 수행되던 중, 인터럽트가 발생 시, 상기 일 영역에 대한 테스트 완료 후 테스트가 종료될 수 있다. 이후 다시 스토리지 장치(도 1의 100)가 유휴 상태에 진입하면, 이전 유휴 시간에 이미 테스트가 수행된 상기 일 영역의 다음 영역부터 테스트가 수행될 수 있다.
예를 들어, 유휴 시간에 영역 R01부터 순차적으로 테스트가 수행되고, 영역 R09에 대한 테스트 수행 중 인터럽트가 발생하는 경우, 영역 R09에 대한 테스트가 완료된 후, 테스트가 종료될 수 있다. 이후, 다음 유휴 시간에 영역 R10부터 영역 R99까지 테스트가 수행될 수 있다.
도 10a 및 도 10b는 본 개시의 예시적 실시예에 따른 테스트 프로세스의 다양한 예들을 나타낸다.
도 10a 및 도 10b를 참조하면, 휘발성 메모리(도 1의 130)에 대한 테스트 수행 시, 복수의 테스트 스탭(STEP1 내지 STEO4), 복수의 테스트 조건(TCD1 내지 TCD3) 및 복수의 영역(R00 내지 R99)에 대하여 테스트가 수행될 수 있다.
도 10a를 참조하면 복수의 테스트 스탭(STEP1 내지 STEO4)이 수행되며, 각 테스트 스탭 수행 시 상기 테스트 스탭에 대응하는 복수의 테스트 조건(TCD1 내지 TCD3)이 차례로 적용될 수 있다. 또한 복수의 테스트 조건(TCD1 내지 TCD3) 중 하나의 조건에 대하여 휘발성 메모리(130)의 복수의 영역(R00 내지 R99)에 대하여 테스트가 수행될 수 있다. 예를 들어, 도 10a에 도시된 바와 같이, 제1 테스트 스탭(STEP1), 예컨대 리프레시 테스트가 수행될 때, 제1 조건(TCD1), 예컨대 32ms의 리프래시 타임을 기초로 복수의 영역(R00 내지 R99)에 대하여 리프래시 테스트가 수행되고, 이후, 제2 조건(TCD2) 및 제3 조건(TCD3), 예컨대, 80ms 및 100ms의 리프래시 타임을 기초로 복수의 영역(R00 내지 R99)에 대하여 복수회 리프래시 테스트가 수행될 수 있다. 또한, 제1 테스트 스탭(STEP1)이 완료된 후, 제2 테스트 스탭(STEP2)이 수행될 수 있으며, 제2 테스트 스탭(STEP2)에 대응하는 복수의 테스트 조건을 기초로 복수의 영역(R00 내지 R99)에 대하여 복수회 제2 테스트 스탭(STEP2)이 수행될 수 있다.
도 10b를 참조하면, 복수의 테스트 조건(TCD1 내지 TCD3)을 기초로 복수회 테스트가 수행될 수 있으며, 각각의 테스트 조건 하에서, 복수의 영역(R00 내지 R99)이 순차적으로 테스트 될 수 있다. 또한, 복수의 영역(R00 내지 R99)이 각각에 대하여 테스트가 수행될 때, 복수의 테스트 스탭(STEP1 내지 STEP2)이 수행될 수 있다.
도 10a 및 도 10b를 참조로 비휘발성 메모리(130)에 대한 테스트 프로세스에 대하여 설명하였다. 그러나 이에 제한되는 것은 아니며 테스트에 소비되는 시간 및 테스트 효율이 향상되도록 프로세스는 변경될 수 있다.
한편, 도 10a 및 도 10b에 도시된 테스트 스탭들 및 테스트 조건은 설명의 편의를 위하여 개시된 예시일 뿐이며, 다양한 종류의 테스트 스탭 및 테스트 조건이 테스트 수행 시 적용될 수 있다.
도 11a는 본 개시의 예시적 실시예에 따른 스토리지 장치의 휘발성 메모리에 대한 테스트 동작을 예시적으로 나타내며, 도 11b는 도 11a에서 인터럽트 발생 시 저장되는 테스트 이력을 예시적으로 나타낸다. 설명의 편의를 위하여 도 1을 함께 참조하여 설명하기로 한다.
예시적으로 도 11a에 도시된 테스트 프로세스에 따라 휘발성 메모리(도 1의 130)에 대하여 테스트가 순차적으로 수행될 수 있다. 도 11a의 테스트 프로세스는 도 10a를 참조하여 설명한 테스트 프로세스와 동일한 바, 중복되는 설명은 생략하기로 한다.
스토리지 장치(100)가 t1 시점에, 제1 유휴 상태(Idle1)에 진입하면, 컨트롤러(110)는 이전 테스트 이력을 검토하고, 테스트 프로세스를 결정할 수 있다. 예컨대, 이전 테스트 이력은 휘발성 메모리(120)에 저장되어 있다. 컨트롤러(110)는 휘발성 메모리(120)로부터 이전 테스트 이력을 독출하고, 이전 유휴 상태에 수행된 테스트 프로세스를 검토할 수 있다. 예를 들어, 컨트롤러(110)는 이전에(예컨대, 이전 유휴 상태 동안) 복수의 영역(R00 내지 R99) 전부에 대해 제1 테스트 조건(TCD1)으로 제1 테스트 스탭(STEP1)이 진행되었음을 확인할 수 있다.
컨트롤러(110)는 이전 테스트 이력을 기초로 다음으로 수행될 테스트 프로세스를 결정할 수 있다. 컨트롤러(110)는 영역 R00부터 제2 테스트 조건(TCD2)으로 제1 테스트 스탭(STEP1)이 수행되도록 결정할 수 있다. 이에 따라 영역 R00부터 순차적으로 테스트가 수행될 수 있다.
t2 시점에 영역 R02에 대한 테스트 수행 중 인터럽트가 발생하면, 컨트롤러(110)는 영역 R02에 대한 테스트가 완료된 후, 인터럽트 발생 시까지 수행된 테스트 프로세스에 대한 테스트 정보(TIF)를 비휘발성 메모리(120)에 저장할 수 있다. 인터럽트가 발생한 t2 시점에 영역 R02에 대하여 제2 조건(TCD2)로 제1 테스트 스탭(STEP2)이 수행된 바, 상기 테스트 프로세스에 대한 테스트 이력이 테스트 정보(TIF)로서 비휘발성 메모리(NVM)에 저장될 수 있다. 또한, t2 시점까지 진행된 테스트 프로세스에 대한 테스트 결과가 테스트 정보(TIF)로서 비휘발성 메모리(NVM)에 저장될 수 있다.
도 11b를 참조하면, 테스트 정보(TIF)는 테스트 이력(TI) 및 테스트 결과(TRS)를 포함할 수 있다. 테스트 이력(TI)은 인터럽트 발생 시점, 예컨대 t2 시점에 수행된 테스트 프로세서에 대한 테스트 이력, 예컨대, 테스트 스탭(STEP), 테스트 조건(TCD) 및 테스트 영역(TR)이 저장될 수 있다. 도 11b에서는 t2 시점에 수행된 테스트 프로세스에 대한 정보만이 테스트 이력(TI)으로서 도시되었으나, 이에 제한되는 것은 아니며, 이전에 수행된 모든 테스트 프로세서에 대한 정보가 테스트 이력(TI)에 포함될 수 있다.
테스트 결과(TRS)는 도시된 바와 ƒˆ이, 결함 비트들에 대한 어드레스(ADFB)를 포함할 수 있으며, 예컨대 t2 시점까지 진행된 테스트 프로세스에 따라 검출된 복수의 결함 비트들에 대한 어드레스들이 테스트 결과(TRS)로서 비휘발성 메모리(120)에 제공될 수 있다.
이상, 도 10a 내지 도 11b를 참조하여 테스트 프로세스, 테스트 정보에 대하여 설명하였다. 그러나, 이는 예시적인 것일 뿐이며, 본 개시의 기술적 사상은 이에 제한되지 않는다. 테스트 프로세스 및 테스트 정보는 다양하게 변경이 가능하다.
도 12는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법을 나타내는 흐름도이다. 구체적으로 도 12는 휘발성 메모리(도 1의 130)의 복수의 영역 중 일부 영역에 대하여 테스트가 수행된 후 인터럽트 발생 시의 스토리지 장치의 동작 방법을 나타낸다.
도 12를 참조하면, 스토리지 장치(도1의 100)가 유휴상태에 진입하면(S210), 스토리지 장치(100), 다시 말해 컨트롤러(110)가 휘발성 메모리(120)에 대한 이전 테스트 이력을 검토할 수 있다(S220). 컨트롤러(110)는 이전 테스트 이력을 기초로 테스트가 수행될 테스트 영역으로 결정할 수 있다(S230). 컨트롤러(110)는 휘발성 메모리(120)의 복수의 영역들 중 이전에 테스트 수행된 영역 이외의 다른 영역을 테스트 영역으로 결정할 수 있다(S230)
결정된 테스트 영역부터, 테스트가 수행되지 않은 나머지 영역들에 대하여 차례로 테스트가 수행될 수 있다(S240). 테스트 수행 중 인터럽트가 발생하면(S250), 비휘발성 메모리(120)에 인터럽트 발생 시까지 테스트가 수행된 영역의 어드레스가 저장될 수 있다(S251). 이후 테스트가 종료되고, 스토리지 장치(100)는 노멀 동작을 수행할 수 있다.
한편, 인터럽트가 발생하지 않으면 계속하여 테스트가 수행될 수 있으며, 테스트가 수행된 각 영역에 대하여 결함 셀이 검출되었는지를 판단할 수 있다(S260). 결함 셀이 검출되었다면, 결함 셀에 대한 어드레스를 저장할 수 있다(S262). 결함 셀에 대한 어드레스는 비휘발성 메모리(120)에 저장될 수 있다. 그러나 이에 제한되는 것은 아니며, 결함 셀에 대한 어드레스는 휘발성 메모리(120)에 임시 저장될 수도 있다.
이후 스토리지 장치(100)는 복수의 영역에 대하여 테스트가 완료되었는지를 판단하고(S270), 테스트가 완료되었다면, 전체 테스트가 진행되는 중 검출된 결함 셀, 다시 말해 어드레스가 저장된 결함 셀이 존재하는지 판단할 수 있다(S280). 예컨대, S262 단계에서 저장된 기록을 기초로 결함 셀 존재 여부를 판단할 수 있다. 어드레스가 저장된 결함 셀이 존재한다면, 스토리지 장치(100)는 결함 셀을 리페어할 수 있다(S90). 전술한 바와 같이, 하드웨어 적으로 또는 소프트웨어적으로 결함 셀이 리페어될 수 있다.
한편, S270 단계에서, 복수의 영역에 대하여 테스트가 완료되지 않았다고 판단되면, 테스트가 수행되지 않은 영역에 대하여 테스트가 수행될 수 있다. 이에 따라, 복수의 영역 전부에 대하여 테스트가 완료될 때까지 S240 단계 내지 S270 단계가 반복적으로 수행될 수 있다. 이로써, 복수의 영역 전부에 대하여 테스트가 수행될 수 있다.
한편, 도 5를 참조하여 전술한 바와 같이, 휘발성 메모리(130)는 메타 데이터 영역(131) 및 유저 데이터 영역(132)을 포함할 수 있다. 스토리지 장치(100)가 유휴 상태일 때, 메타 데이터 영역(131)의 데이터는 유효한바, 메타 데이터 영역(131)에 대하여 테스트가 수행될 때, 테스트가 수행될 영역에 저장된 메타 데이터가 프리 영역으로 이전된 후, 테스트가 수행되어야 한다.
이와 같이, 메타 데이터 영역(131)에 대한 테스트 수행 시의 스토리지 장치의 동작 방법을 도 13a 및 도 13b 참조하여 설명하기로 한다.
도 13a 및 도 13b는 본 개시의 예시적 실시에 따른 스토리지 장치에서, 휘발성 메모리의 유효 영역에 대하여 테스트가 수행될 때의 데이터 이전 방법을 나타낸다. 구체적으로 도 13a는 테스트 결과 결함 셀이 검출되지 않은 경우를 나타내고 도 13b 테스트 결과 결함 셀이 검출되는 경우를 나타낸다.
휘발성 메모리(130)는 메타 데이터 영역(131) 및 유저 데이터 영역(132)을 포함할 수 있으며, 메타 데이터 영역(131)에는 비휘발성 메모리(120)의 메타 데이터 또는 스토리지 장치(100)의 동작에 있어서 주요한 데이터들이 저장될 수 있다. 메타 데이터 영역(131) 및 유저 데이터 영역(132)은 또한 테스트 단위를 기초로 복수의 영역들(예컨대 영역 R01 내지 영역 R79 및 영역 R80 내지 영역 R99)로 구분될 수 있다. 스토리지 장치(100)가 유휴 상태일 때, 유저 데이터 영역(132)에 저장된 데이터는 무효 데이터이며, 유저 데이터 영역(132)의 복수의 영역들, 예컨대 영역 R80 내지 영역 R99는 프리 영역일 수 있다. 그러나, 스토리지 장치(100)가 유휴 상태일 때도 메타 데이터 영역(131)에 저장된 메타 데이터들은 유효 데이터이며 메타 데이터 영역(131)에 포함되는 복수의 영역들(예컨대 영역 R01 내지 영역 R79) 중 메타 데이터가 저장된 일부 영역은 유효 영역일수 있다. 유효 영역들에 대하여 테스트가 수행될 때, 상기 유효 영역들에 저장된 데이터들은 프리 영역으로 이전될 수 있다.
도 13a에 도시된 바와 같이, 영역 R01에 대하여 테스트가 수행될 때, 영역 R01에 저장된 메타 데이터는 프리 영역 중 하나, 예컨대 영역 R81로 이전되고 영역 R81에 임시 저장될 수 있다(①). 이후 영역 R01에 대하여 테스트가 수행되고(②) 영역 R80에서 결함 셀이 검출되지 않으면, 영역 R80에 임시 저장된 메타 데이터는 영역 R01로 재저장될 수 있다(③).
도 13b를 참조하면, 영역 R01에서 결함 셀이 검출되는 경우, 결함 셀에 대응하는 비트를 포함하는 데이터, 즉 영역 R80에 임시 저장된 메타 데이터에 대하여 데이터 복구가 수행(③)된 후, 복구된 메타 데이터가 영역 R01에 재저장될 수 있다(④). 예를 들어, 컨트롤러(110)는 영역 R80에 임시 저장된 메타 데이터를 독출하고 메타 데이터에 방어 코드를 적용함으로써, 메타 데이터를 정상적을 복구할 수 있다. 이후, 컨트롤러(110)는 복구된 메타 데이터를 영역 R01에 저장할 수 있다.
다른 실시예에 있어서, 결함 셀이 하드웨어 적으로 리페어되는 경우, 복구된 메타 데이터의 일부 비트, 예컨대 결함 셀에 대응하는 비트를 포함하는 일부 비트는 대체된 리던던시 셀들에 저장될 수 있다.
도 14는 본 개시의 예시적 실시예들에 따른 스토리지 장치의 구성 요소들의 동작을 나타내는 흐름도이다.
도 14를 참조하면, 컨트롤러(110)는 스토리지 장치(도 1의100)가 유휴 상태에 진입 하였음을 판단할 수 있다(S1101). 비휘발성 메모리(120)는 테스트 코드를 독출하고(S1201) 테스트 코드를 컨트롤러(110)에 전송할 수 있다. 실시에에 있어서, 비휘발성 메모리(120)는 컨트롤러(110)의 요청에 따라 테스트 코드를 독출하고 독출된 테스트 코드를 전송할 수 있다.
컨트롤러(110)는 테스트 코드를 수신하고(S1102) 테스트 코드를 실행할 수 있다(S1103). 도 5를 참조하여 전술한 바와 같이, 테스트 코드는 RAM(도 5의 112)에 로딩되고, 프로세서(도 5의 111)가 테스트 코드를 실행할 수 있다.
비휘발성 메모리(120)는 이전 테스트 이력을 독출하고 이를 컨트롤러(110)에 제공할 수 있다(S1202). 컨트롤러(110)는 이전 테스트 이력을 수신하고(S1104), 이전 테스트 이력을 기초로 현재 수행되어야 할 테스트 프로세스를 결정할 수 있다(S1105). 예컨대 컨트롤러(110)는 테스트 스탭, 테스트 조건 및 테스트 영역을 결정할 수 있다. 컨트롤러(110)는 상기 테스트 프로세스를 나타내는 테스트 제어 신호를 휘발성 메모리(130)에 전송할 수 있다(S1106). 휘발성 메모리(130)는 전송된 테스트 제어 신호를 기초로 테스트를 수행할 수 있다(S1301).
한편, 테스트 수행 중 스토리지 장치(1000)에 인터럽트가 발생할 수 있다. 컨트롤러(110)는 인터럽트 발생을 감지하고(S1107), 테스트 종료 신호를 휘발성 메모리(130)에 제공할 수 있다(S1108). 휘발성 메모리(130)는 테스트가 수행되던 영역에 대하여 테스트가 완료되면 테스트를 종료할 수 있다(S1302).
실시예에 있어서, 휘발성 메모리(130)는 테스트 결과를 컨트롤러(110)에 제공할 수 있다(S1303). 컨트롤러(110)는 테스트 결과 및/또는 테스트 이력을 포함하는 테스트 정보를 비휘발성 메모리(120)에 제공할 수 있다. 비휘발성 메모리(120)는 수신된 테스트 정보를 기초로 테스트 결과를 저장하고 또한 테스트 이력을 업데이트 할 수 있다(S1203).
한편, 스토리지 장치(100)가 다음 유휴 상태에 진입하면, 전술한 단계들이 수행될 수 있으며, 휘발성 메모리(130)의 복수의 영역들에 대하여 테스트가 완료될 수 있다. 이때, 결함 셀이 검출되는 경우, 결함 셀이 리페어될 수 있다. 도시된 바와 같이, 휘발성 메모리(130)가 결함 셀을 하드웨어적으로 리페어할 수 있다(S1304). 예컨대, 휘발성 메모리(130)는 결함 셀을 리던던시 셀로 대체할 수 있다.
실시예에 있어서, 도 7을 참조하여 설명한 바와 같이, 결함 셀은 컨트롤러(110)에 의하여 소프트웨어적으로 리페어될 수도 있다.
도 15는 본 개시의 예시적 실시예에 따른 스토리지 장치의 다른 구현 예를 나타내는 블록도이다.
도 15를 참조하면, 스토리지 장치(110b)는 컨트롤러(110b), 비휘발성 메모리(120) 및 휘발성 메모리(130)를 포함할 수 있다. 본 실시예에 따른 컨트롤러(110c)는 프로세서(111), RAM(112), 데이터 복구 회로(113), 호스트 인터페이스(114), 휘발성 메모리 인터페이스(115), 비휘발성 메모리 인터페이스(116) 및 테스트 모듈(118)을 더 포함할 수 있다. 상기 구성 요소들은 버스(117)를 통해 서로 통신할 수 있다. 이외에도, 다른 구성 요소들을 더 포함할 수 있다.
도 15의 컨트롤러(110b)의 구성 및 동작은 도 5의 컨트롤러(100a)의 구성 및 동작과 대부분 유사하다. 다만 컨트롤러(110b)는 테스트 모듈(118)을 더 포함하는 바, 이에 대하여 설명하기로 한다.
테스트 모듈(118)은 하드웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 테스트 모듈(118)은 휘발성 메모리(130) 또는 비휘발성 메모리(120)의 테스트 수행을 제어할 수 있다. 실시예에 있어서, 테스트 모듈(118)은 스토리지 장치(110b)가 유휴 상태에 진입하면 활성화될 수 있다. 활성화된 테스트 모듈(118)은 테스트 제어 신호(TCS)를 생성하고, 이를 휘발성 메모리(130)에 제공할 수 있다. 휘발성 메모리(130)는 테스트 모듈(118)로부터 제공되는 테스트 제어 신호(TCS)를 기초로 테스트를 수행할 수 있다. 휘발성 메모리(130)의 테스트 과정은 앞서 상세하게 설명한바 생략하기로 한다.
이와 같이, 스토리지 장치(110b)는 컨트롤러(110b) 내부에 휘발성 메모리(130) 또는 비휘발성 메모리(120)의 테스트를 위한 전용 기능 블록을 구비할 수 있다. 테스트 모듈(118)은 스토리지 장치(110b)의 성능 저하를 유발하지 않으면서도 효율적으로 휘발성 메모리(130) 또는 비휘발성 메모리(120)가 테스트를 수행하도록 제어할 수 있다.
도 16은 본 개시의 예시적 실시예에 따른 스토리지 장치의 다른 구현 예를 나타내는 블록도이다.
도 16을 참조하면, 스토리지 장치(100c)는 컨트롤러(110c) 및 비휘발성 메모리(120)를 포함할 수 있다. 컨트롤러(110c)는 프로세서(111), RAM(112), 데이터 복구 회로(113), 호스트 인터페이스(114), 휘발성 메모리(119) 및 비휘발성 메모리 인터페이스(116)를 포함할 수 있다. 상기 구성 요소들은 버스(117)를 통해 서로 통신할 수 있다. 이외에도, 컨트롤러(110c)는 다른 구성 요소들을 더 포함할 수 있다.
본 실시예에 따른 스토리지 장치(100c)는 컨트롤러(110c) 내부에 구비된 휘발성 메모리(119)가 스토리지 장치(100c)의 버퍼 역할을 수행할 수 있다. 휘발성 메모리(119)는 비휘발성 메모리(120)에 대한 기록 데이터 및 독출 데이터를 버퍼링할 수 있다. 휘발성 메모리(119)는 또한 비휘발성 메모리(120)의 메타 데이터를 저장할 수 있다. 스토리지 장치(100c)가 유휴 상태에 진입하면 휘발성 메모리(119)에 대하여 결함 셀 검출을 위한 테스트가 수행될 수 있다. 테스트 수행 방법 및 결함 셀 리페어 방법은 앞서 다양한 예를 통해 설명한 바와 유사한 바 중복되는 설명은 생략하기로 한다.
도 17은 본 개시의 예시적 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
도 17을 참조하면, SSD 시스템(2000)은 호스트(2100) 및 SSD(2200)를 포함할 수 있다. SSD(2200)는 신호 커넥터(signal connector)를 통해 호스트(2100)와 신호를 주고 받으며, 전원 커넥터(power connector)를 통해 전원을 입력 받는다. SSD(2200)는 SSD 컨트롤러(2210), 보조 전원 장치(2220) 및 복수의 메모리 장치들(2230, 2240, 2250) 및 버퍼(2260)를 포함할 수 있다.
SSD 컨트롤러(2210)는 SSD(2200)의 전반적인 동작을 제어할 수 있다. 복수의 메모리 장치들(2230, 2240, 2250)은 비휘발성 메모리 장치들일 수 있다. 실시예에 있어서 복수의 메모리 장치들 중 적어도 하나의 메모리 장치는 3D 플래시 메모리 셀 어레이를 포함할 수 있다.
버퍼(2260)는 복수의 메모리 장치들(2230, 2240, 2250)에 저장되는 데이터를 버퍼링할 수 있다. 버퍼(2260)는 또한 복수의 메모리 장치들(2230, 2240, 2250)의 메타 데이터를 저장할 수 있다. 버퍼(2260)는 휘발성 메모리 장치일 수 있다. 예컨대 버퍼(2260)는 DRAM으로 구현될 수 있다.
본 개시의 실시예에 따른 스토리지 장치(도 1의 100, 도 5의 100a, 도 17의 100b, 도 18의 100c) SSD(2200)에 적용될 수 있다. 따라서, SSD(2200)는 유휴 상태일 때, 버퍼(2260)의 결함 셀을 검출하고, 결함 셀을 리페어할 수 있다.
SSD 컨트롤러(2210)는 호스트(2100)와 SSD(2200)간의 통신 상태를 기초로 SSD(2200)의 동작 상태를 판단할 수 있다. 예를 들어, 소정의 기간동안 호스트(2100)와 SSD(2200)간의 통신이 수행되지 않는 경우, 예컨대, 호스트(2100)로부터 액세스 요청이 수신되지 않는 경우, SSD(2200)가 유휴 상태에 진입하였다고 판단할 수 있다. SSD 컨트롤러(2210)는 SSD(2200)가 유휴 상태에 진입하면, 유휴 시간동안 버퍼(2260)가 결함 셀을 검출하기 위한 테스트를 수행하도록 제어할 수 있다. 테스트 알고리즘은 펌웨어 또는 소프트웨어로서 구현될 수 있으며, 복수의 메모리 장치들(2230, 2240, 2250) 중 하나에 저장될 수 있다. SSD 컨트롤러(2210)는 테스트 코드를 포함하는 펌웨어 또는 소프트웨어를 구동함으로써, 버퍼(2260)에 대한 테스트를 제어하는 테스트 제어 신호를 생성하고, 생성된 테스트 제어 신호를 버퍼(2260)에 제공할 수 있다. 다른 실시예에 있어서, 테스트를 수행하는 기능 모듈이 SSD 컨트롤러(2210)에 하드웨어 적으로 구현될 수도 있다.
버퍼(2260)는 테스트 제어 신호를 기초로 내부의 메모리 셀 어레이에 대한 특성 테스트를 수행할 수 있다. 이때, 버퍼(2260)는 가속 조건을 기초로 테스트를 수행함으로써, 결함이 발생할 우려가 있는 셀을 사전에 검출하고, 검출된 셀을 리페어 처리할 수 있다. 이로써, 제조 공정 단계뿐만이 아니라 버퍼(2260)가 SSD(2200)에 탑재된 상태에서 버퍼(2260)에 대하여 결함 셀 검출을 위한 테스트가 수행될 수 있다. 따라서, 버퍼(2260)의 메모리 셀, 예컨대 휘발성 메모리 셀에 진행성 불량이 발생하는 경우에도 데이터 오류가 발생하기 전에 불량을 사전에 차단하고, 버퍼(2260)의 무결성을 유지할 수 있다.
한편, 버퍼(2260)에 대한 테스트 수행 중 SSD(2200)에 인터럽트 또는 서든 파워 오프가 발생하는 경우, 이전까지 버퍼(2260)에서 수행된 테스트 프로세스에 대한 테스트 이력 또는 테스트 결과가 복수의 메모리 장치들(2230, 2240, 2250) 중 어느 하나에 저장되고, 버퍼(2260)는 테스트를 종료할 수 있다. 이후 SSD(2200)가 다시 유휴 상태에 진입한 경우, SSD 컨트롤러(2210)복수의 메모리 장치들(2230, 2240, 2250) 중 어느 하나에 저장된, 테스트 이력 또는 테스트 결과를 기초로 테스트 프로세스의 진행 상태를 판단하고, 이어서 계속하여 테스트를 수행할 수 있다. 이와 같이, SSD(2200)에 인터럽트 발생 시 버퍼(2260)가 테스트를 중단하고, 추후 연속하여 테스트를 수행할 수 있는바, SSD(2200)의 성능 저하를 유발하지 않고 버퍼(2260)에 대한 테스트가 수행될 수 있다.
도 18은 본 개시의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 18을 참조하면, 전자 시스템(3000)은 CPU(3110), 메모리 장치(3200), 스토리지 장치(3300), 모뎀(3400), 입출력 장치(3500) 및 파워 서플라이(3600)를 포함할 수 있다. 본 실시예에서, 스토리지 장치(3300)는 전술한 실시예들 중 어느 하나의 실시예에 해당하는 스토리지 장치가 적용될 수 있다. 이에 따라, 스토리지 장치(3300)는 유휴 상태일 때 내부에 구비되는 휘발성 메모리를 테스트하고, 테스트결과 검출되는 결함 셀들을 리페어할 수 있다. 또한, 테스트 이력 또는 테스트 결과를 비휘발성 메모리에 저장하고, 추후의 테스트 단계에서 이용할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 스토리지 장치에 있어서,
    유저 데이터를 저장하는 비휘발성 메모리;
    상기 유저 데이터를 버퍼링하고, 상기 스토리지 장치의 유휴 시간에 휘발성 셀 어레이에 대하여 결함 셀 검출을 위한 테스트를 수행하는 휘발성 메모리; 및
    상기 유휴 시간에 상기 휘발성 메모리가 상기 테스트를 수행하도록 제어하고, 상기 테스트 수행에 기초하여 생성되는 테스트 정보를 상기 비휘발성 메모리에 저장하는 컨트롤러를 포함하고,
    상기 컨트롤러는,
    외부 호스트로부터의 커맨드 수신에 따른 인터럽트 발생 시, 상기 휘발성 메모리가 상기 테스트를 중단하도록 제어하고, 상기 인터럽트 발생 시까지 수행된 테스트 프로세스에 대한 테스트 이력을 상기 테스트 정보로서 상기 비휘발성 메모리에 저장하는 것을 특징으로 하는 스토리지 장치.
  2. 제1 항에 있어서, 상기 테스트 정보는,
    테스트 결과 및 상기 테스트 이력 중 적어도 하나를 포함하는 것을 특징으로 하는 스토리지 장치.
  3. 삭제
  4. 제1 항에 있어서, 상기 테스트 이력은,
    상기 휘발성 메모리의 복수의 영역 중 상기 테스트가 수행된 영역에 대한 어드레스 정보를 포함하는 것을 특징으로 하는 스토리지 장치.
  5. 제1 항에 있어서, 상기 테스트 이력은,
    상기 결함 셀 검출을 위하여 차례로 수행되는 복수의 테스트 스텝 중 상기 인터럽트 발생 시 수행된 적어도 하나의 테스트 스텝에 대한 정보를 포함하는 것을 특징으로 하는 스토리지 장치.
  6. 제1 항에 있어서, 상기 테스트 이력은,
    가변되는 복수의 테스트 조건 중 상기 인터럽트 발생 시에 적용된 테스트 조건에 대한 정보를 포함하는 것을 특징으로 하는 스토리지 장치.
  7. 제1 항에 있어서, 상기 컨트롤러는,
    상기 스토리지 장치의 다음 유휴 시간에, 상기 비휘발성 메모리에 저장된 상기 테스트 이력을 기초로 상기 다음 유휴 시간에 수행될 테스트 프로세스를 결정하는 것을 특징으로 하는 스토리지 장치.
  8. 제1 항에 있어서, 상기 컨트롤러는,
    상기 스토리지 장치의 다음 유휴 시간에, 상기 비휘발성 메모리에 저장된 상기 테스트 이력을 기초로 상기 휘발성 셀 어레이의 복수의 영역 중 상기 다음 유휴 시간에 상기 테스트가 수행될 영역을 결정하는 것을 특징으로 하는 스토리지 장치.
  9. 제1 항에 있어서, 상기 컨트롤러는,
    서든 파워 오프를 감지 시, 상기 휘발성 메모리가 상기 테스트를 중단하도록 제어하고, 상기 서든 파워 오프 감지 시까지 수행된 테스트 프로세스에 대한 상기 테스트 정보를 상기 비휘발성 메모리에 저장하는 것을 특징으로 하는 스토리지 장치.
  10. 제1 항에 있어서, 상기 휘발성 메모리는,
    가속 조건을 기초로 상기 휘발성 셀 어레이에 대한 기입 및 독출 테스트를 수행하는 것을 특징으로 하는 스토리지 장치.
  11. 제1 항에 있어서, 상기 휘발성 메모리는,
    상기 테스트를 수행한 결과에 기초하여 검출되는 상기 결함 셀을 리던던시 셀로 대체하는 것을 특징으로 하는 스토리지 장치.
  12. 제1 항에 있어서, 상기 컨트롤러는,
    상기 테스트를 수행한 결과에 기초하여 검출되는 상기 결함 셀에 대응하는 비트에 오류 방지를 위한 방어 코드(recovery code)를 적용하는 것을 특징으로 하는 스토리지 장치.
  13. 제1 항에 있어서,
    상기 비휘발성 메모리는 상기 테스트 수행을 위한 프로그램 코드를 저장하고,
    상기 컨트롤러는, 상기 유휴 시간에, 상기 비휘발성 메모리로부터 상기 프로그램 코드를 독출하고, 상기 프로그램 코드를 기초로 상기 휘발성 메모리에 상기 테스트 수행을 지시하는 테스트 제어 신호를 제공하는 것을 특징으로 하는 스토리지 장치.
  14. 제13 항에 있어서,
    상기 프로그램 코드는 상기 스토리지 장치의 사용 과정에서 업데이트 가능한 것을 특징으로 하는 스토리지 장치.
  15. 제1 항에 있어서, 상기 휘발성 메모리는,
    리프레시 특성, 주파수 특성, AC 파라미터 및 DC 파라미터 특성 중 적어도 하나의 특성을 테스트하는 것을 특징으로 하는 스토리지 장치.
  16. 제1 항에 있어서,
    상기 휘발성 메모리는 상기 휘발성 셀 어레이에 포함되는 복수의 영역에 대하여 차례로 상기 테스트를 수행하고,
    상기 복수의 영역 중 상기 테스트가 수행될 제1 영역에 저장된 제1 데이터를 프리 영역인 제2 영역에 임시 저장하고, 상기 제1 영역에 대하여 상기 테스트를 수행한 후, 상기 제1 데이터를 상기 제1 영역에 다시 저장하는 것을 특징으로 하는 스토리지 장치.
  17. 제16 항에 있어서, 상기 제1 데이터는,
    상기 비휘발성 메모리의 메타 데이터 중 적어도 일부인 것을 특징으로 하는 스토리지 장치.
  18. 제1 항에 있어서, 상기 휘발성 메모리는,
    상기 유휴 시간에, 가변되는 테스트 조건을 기초로 복수 회 상기 테스트를 수행하는 것을 특징으로 하는 스토리지 장치.
  19. 휘발성 메모리 및 비휘발성 메모리를 포함하는 스토리지 장치의 동작 방법에 있어서,
    외부 장치와의 데이터 송신 및 수신이 없는 유휴 상태에 진입하는 단계;
    상기 휘발성 메모리에 대하여 결함 셀 검출을 위한 테스트를 수행하는 단계;
    수행된 테스트 프로세스에 따른 테스트 정보를 상기 비휘발성 메모리에 저장하는 단계; 및
    상기 테스트 정보에 따라 판단되는 결함 셀에 대한 리페어 단계를 포함하고,
    상기 테스트 정보를 상기 비휘발성 메모리에 저장하는 단계는,
    인터럽트 발생 여부를 확인하는 단계; 및
    상기 인터럽트 발생 시, 복수의 테스트 프로세스 중, 상기 인터럽트 발생 시까지 수행된 테스트 프로세스에 대한 테스트 이력을 상기 비휘발성 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법.
  20. 삭제
KR1020160166206A 2016-12-07 2016-12-07 리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 KR102487553B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160166206A KR102487553B1 (ko) 2016-12-07 2016-12-07 리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US15/695,366 US10847244B2 (en) 2016-12-07 2017-09-05 Storage device including repairable volatile memory and method of operating the same
CN201710991230.2A CN108172262B (zh) 2016-12-07 2017-10-23 包含可修复的易失性存储器的存储器件及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160166206A KR102487553B1 (ko) 2016-12-07 2016-12-07 리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20180065423A KR20180065423A (ko) 2018-06-18
KR102487553B1 true KR102487553B1 (ko) 2023-01-11

Family

ID=62244081

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160166206A KR102487553B1 (ko) 2016-12-07 2016-12-07 리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법

Country Status (3)

Country Link
US (1) US10847244B2 (ko)
KR (1) KR102487553B1 (ko)
CN (1) CN108172262B (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102350644B1 (ko) * 2018-01-26 2022-01-14 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
JP6612392B1 (ja) 2018-06-08 2019-11-27 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
TWI662553B (zh) * 2018-08-27 2019-06-11 群聯電子股份有限公司 記憶體測試方法與記憶體測試系統
KR102634809B1 (ko) * 2018-11-23 2024-02-08 에스케이하이닉스 주식회사 전자 장치 및 그것의 동작 방법
KR102654308B1 (ko) * 2018-11-26 2024-04-04 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10503543B1 (en) 2019-02-04 2019-12-10 Cohesity, Inc. Hosting virtual machines on a secondary storage system
KR20210041829A (ko) 2019-10-08 2021-04-16 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11397635B2 (en) * 2019-12-09 2022-07-26 Sandisk Technologies Llc Block quality classification at testing for non-volatile memory, and multiple bad block flags for product diversity
US11380415B2 (en) * 2020-02-27 2022-07-05 Taiwan Semiconductor Manufacturing Company, Ltd. Dynamic error monitor and repair
DE102020134945A1 (de) 2020-02-27 2021-09-02 Taiwan Semiconductor Manufacturing Co., Ltd. Dynamische fehlerüberwachung und -reparatur
CN113393893A (zh) * 2020-03-11 2021-09-14 长鑫存储技术有限公司 存储器的测试方法及相关设备
EP3936996A4 (en) * 2020-04-01 2022-07-06 Changxin Memory Technologies, Inc. READ-WRITE METHOD AND STORAGE DEVICE
CN113495674B (zh) * 2020-04-01 2023-10-10 长鑫存储技术有限公司 读写方法及存储器装置
CN113495671B (zh) * 2020-04-01 2023-10-17 长鑫存储技术有限公司 读写方法及存储器装置
CN113495672B (zh) 2020-04-01 2023-08-11 长鑫存储技术有限公司 读写方法及存储器装置
CN113495675B (zh) 2020-04-01 2023-08-11 长鑫存储技术有限公司 读写方法及存储器装置
EP3985494B1 (en) 2020-04-01 2024-01-17 Changxin Memory Technologies, Inc. Read-write method and memory device
EP3964941B1 (en) * 2020-04-01 2024-02-28 Changxin Memory Technologies, Inc. Read-write method and memory device
EP3964940A4 (en) * 2020-04-01 2022-08-17 Changxin Memory Technologies, Inc. READ/WRITE METHOD AND STORAGE DEVICE
CN111399782B (zh) * 2020-04-21 2022-10-25 中国人民解放军军事科学院国防工程研究院工程防护研究所 一种动态测试设备高可靠性触发及数据采集存储方法
US11436025B2 (en) 2020-07-09 2022-09-06 Numem Inc. Smart compute resistive memory
US11443802B2 (en) * 2020-07-09 2022-09-13 Numem Inc. Adaptive memory management and control circuitry
CN116863986A (zh) * 2023-09-05 2023-10-10 合肥康芯威存储技术有限公司 一种用于对存储设备进行分类的数据检测方法、装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130173970A1 (en) * 2012-01-01 2013-07-04 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair
US20140078841A1 (en) 2012-09-18 2014-03-20 Mosys, Inc. Programmable memory built in self repair circuit
US20150109848A1 (en) 2012-07-27 2015-04-23 Taiwan Semiconductor Manufacturing Company, Ltd. Mechanisms for built-in self test and repair for memory devices
US20150155055A1 (en) 2013-11-29 2015-06-04 Samsung Electronics Co., Ltd. Test method of semiconductor memory device and semiconductor memory system
US20150363309A1 (en) * 2014-06-17 2015-12-17 Kingtiger Technology (Canada) Inc. System and method of increasing reliability of non-volatile memory storage

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001338953A (ja) * 2000-05-29 2001-12-07 Mitsubishi Electric Corp 半導体試験装置、半導体試験方法および半導体装置
US7178072B2 (en) * 2001-06-08 2007-02-13 Renesas Technology America, Inc. Methods and apparatus for storing memory test information
US6704228B2 (en) 2001-12-28 2004-03-09 Samsung Electronics Co., Ltd Semiconductor memory device post-repair circuit and method
US7010741B2 (en) * 2002-10-29 2006-03-07 Mosaid Technologies Method and circuit for error correction in CAM cells
US7187603B2 (en) 2003-02-12 2007-03-06 Sony Corporation Semiconductor memory device, repair search method, and self-repair method
JP4703148B2 (ja) * 2004-09-08 2011-06-15 株式会社東芝 不揮発性半導体記憶装置
JP4861012B2 (ja) * 2005-03-31 2012-01-25 ルネサスエレクトロニクス株式会社 Cam装置
JP2006286135A (ja) 2005-04-04 2006-10-19 Toshiba Corp 半導体記憶装置及びその読み書き制御方法
JP2006344345A (ja) * 2005-05-12 2006-12-21 Nec Electronics Corp 揮発性半導体記憶装置
JP2007250090A (ja) 2006-03-16 2007-09-27 Toshiba Corp 不揮発性半導体記憶装置の不良セル自動置き換え方法
US7484138B2 (en) * 2006-06-09 2009-01-27 Taiwan Semiconductor Manufacturing Co., Ltd. Method and system for improving reliability of memory device
US8069377B2 (en) * 2006-06-26 2011-11-29 Micron Technology, Inc. Integrated circuit having memory array including ECC and column redundancy and method of operating the same
DE602006008480D1 (de) * 2006-09-13 2009-09-24 Hynix Semiconductor Inc NAND-Flash-Speichervorrichtung mit ECC-geschütztem reserviertem Bereich für nicht-flüchtige Speicherung von Redundanzdaten
US7949908B2 (en) * 2006-10-11 2011-05-24 Marvell Israel (M.I.S.L) Ltd. Memory repair system and method
JP5032155B2 (ja) * 2007-03-02 2012-09-26 株式会社東芝 不揮発性半導体記憶装置、及び不揮発性半導体記憶システム
JP5038788B2 (ja) 2007-06-18 2012-10-03 ルネサスエレクトロニクス株式会社 半導体装置
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US7805645B2 (en) * 2008-01-11 2010-09-28 Arm Limited Data processing apparatus and method for testing stability of memory cells in a memory device
TWI401691B (zh) * 2009-03-20 2013-07-11 Phison Electronics Corp 具快閃記憶體測試功能的控制器及其儲存系統與測試方法
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US9569320B2 (en) * 2010-12-01 2017-02-14 Seagate Technology Llc Non-volatile memory program failure recovery via redundant arrays
KR20170134989A (ko) * 2016-05-30 2017-12-08 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
JP2014032726A (ja) 2012-08-06 2014-02-20 Renesas Electronics Corp 半導体装置および半導体集積回路装置
US20150286529A1 (en) * 2014-04-08 2015-10-08 Micron Technology, Inc. Memory device having controller with local memory
KR102189780B1 (ko) * 2014-08-11 2020-12-11 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR102233068B1 (ko) * 2014-09-01 2021-03-30 삼성전자주식회사 반도체 메모리 장치의 결함 메모리 셀 리페어 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130173970A1 (en) * 2012-01-01 2013-07-04 Mosys, Inc. Memory device with background built-in self-testing and background built-in self-repair
US20150109848A1 (en) 2012-07-27 2015-04-23 Taiwan Semiconductor Manufacturing Company, Ltd. Mechanisms for built-in self test and repair for memory devices
US20140078841A1 (en) 2012-09-18 2014-03-20 Mosys, Inc. Programmable memory built in self repair circuit
US20150155055A1 (en) 2013-11-29 2015-06-04 Samsung Electronics Co., Ltd. Test method of semiconductor memory device and semiconductor memory system
US20150363309A1 (en) * 2014-06-17 2015-12-17 Kingtiger Technology (Canada) Inc. System and method of increasing reliability of non-volatile memory storage

Also Published As

Publication number Publication date
KR20180065423A (ko) 2018-06-18
CN108172262A (zh) 2018-06-15
US10847244B2 (en) 2020-11-24
CN108172262B (zh) 2023-08-15
US20180158535A1 (en) 2018-06-07

Similar Documents

Publication Publication Date Title
KR102487553B1 (ko) 리페어 가능한 휘발성 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10102059B2 (en) Data storage device capable of preventing a data retention fail of a nonvolatile memory device and operating method thereof
CN111400200A (zh) 控制器及其操作方法
US8331151B2 (en) Semiconductor memory including control unit responsive to erase command to determine selection of redundant memory block
KR20180051272A (ko) 데이터 저장 장치 및 그것의 동작 방법
US10002676B2 (en) Nonvolatile memory device detecting defective bit line at high speed and test system thereof
US20070294588A1 (en) Performing a diagnostic on a block of memory associated with a correctable read error
US11682467B2 (en) Nonvolatile memory device, controller for controlling the same, storage device including the same, and reading method of the same
US10747660B2 (en) Method and system for forming and using memory superblocks based on performance grades
KR20160074025A (ko) 데이터 저장 장치의 동작 방법
US11625298B2 (en) Memory block defect detection and management
US10013190B2 (en) Data storage device
US11036493B2 (en) Memory system and operating method thereof
US20240127900A1 (en) Performing selective copyback in memory devices
US20230060943A1 (en) Memory device defect management
US20220208296A1 (en) Memory device and memory controller and storage device including the memory device and memory controller
US9966148B1 (en) Data storage device and operating method thereof
CN112084118A (zh) 数据存储装置及其操作方法
US10726938B2 (en) Data storage device and operating method thereof
TWI823649B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置
CN112035060B (zh) 一种存储介质的错误检测方法、系统及存储系统
US20230031193A1 (en) Memory system and operating method thereof
US20230214151A1 (en) Memory system and operating method thereof
US20220171706A1 (en) Memory system and operating method thereof
US20220244852A1 (en) Memory system and operating method thereof

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