KR20160007988A - 런 타임 배드 셀을 관리하는 스토리지 시스템 - Google Patents

런 타임 배드 셀을 관리하는 스토리지 시스템 Download PDF

Info

Publication number
KR20160007988A
KR20160007988A KR1020140087001A KR20140087001A KR20160007988A KR 20160007988 A KR20160007988 A KR 20160007988A KR 1020140087001 A KR1020140087001 A KR 1020140087001A KR 20140087001 A KR20140087001 A KR 20140087001A KR 20160007988 A KR20160007988 A KR 20160007988A
Authority
KR
South Korea
Prior art keywords
memory
dram
storage device
host
test
Prior art date
Application number
KR1020140087001A
Other languages
English (en)
Other versions
KR102179829B1 (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 KR1020140087001A priority Critical patent/KR102179829B1/ko
Priority to US14/796,533 priority patent/US9824777B2/en
Publication of KR20160007988A publication Critical patent/KR20160007988A/ko
Application granted granted Critical
Publication of KR102179829B1 publication Critical patent/KR102179829B1/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/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/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/785Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
    • G11C29/789Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes using non-volatile cells or latches
    • 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

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

본 발명의 실시 예에 따른 스토리지 시스템은 불휘발성 메모리 및 장치 메모리를 포함하고 상기 장치 메모리에 대한 테스트를 요청하는 저장 장치; 및 상기 저장 장치로부터 메모리 테스트 요청을 받고, 상기 장치 메모리에 대한 테스트를 실행하며, 테스트 결과를 상기 불휘발성 메모리에 저장하는 호스트를 포함한다. 본 발명에 의하면, 저장 장치의 메모리 테스트 요청에 따라 메모리를 테스트하기 때문에, 제품 사용 중에, 스토리지 시스템의 성능저하 없이, 발생한 런 타임 배드 셀을 실시간으로 찾아내고 관리할 수 있다.

Description

런 타임 배드 셀을 관리하는 스토리지 시스템{STORAGE SYSTEM MANAGING RUN-TIME BAD CELLS}
본 발명은 스토리지 시스템에 관한 것으로, 더욱 상세하게는 런 타임 배드 셀(run-time bad cells)을 관리하는 스토리지 시스템에 관한 것이다.
스토리지 시스템(storage system)은 호스트(host)와 저장 장치(storage device)로 구성되며, UFS(universal flash storage), SATA(serial ATA), SCSI(small computer small interface), SAS(serial attached SCSI), eMMC(embedded MMC) 등과 같은 다양한 인터페이스 표준을 통해 연결된다.
저장 장치는 불휘발성 메모리와 장치 메모리(device memory)를 포함한다. 불휘발성 메모리에는 플래시 메모리, EEPROM, MRAM, PRAM, FeRAM 등이 포함될 수 있다. 장치 메모리는 불휘발성 메모리에 저장될 또는 불휘발성 메모리로부터 읽은 데이터를 임시 저장하는 데 사용될 수 있다. 장치 메모리는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다. 장치 메모리에는 DRAM, SRAM, MRAM, PRAM, FeRAM 등이 포함될 수 있다.
불휘발성 메모리나 장치 메모리는 메모리 셀을 포함한다. 불휘발성 메모리나 장치 메모리는 제품 제조 시 또는 제품 사용 시에 메모리 셀에 불량이 발생할 수 있다. 이하에서는 불량이 발생한 메모리 셀을 배드 셀(bad cell)이라고 한다. 제품 생산 단계에서, 메모리 전체 영역을 테스트함으로 제조 시에 불량이 발생한 배드 셀을 쉽게 찾아낼 수 있다. 그러나 제품 사용 중에 발생한 배드 셀을 찾는 것은 쉽지 않다.
본 발명은 상술한 기술적 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은 제품 사용 중에 발생한 배드 셀을 찾아내고 관리하는 스토리지 시스템을 제공하는 데 있다.
본 발명의 실시 예에 따른 스토리지 시스템은 불휘발성 메모리 및 장치 메모리를 포함하고 상기 장치 메모리에 대한 테스트를 요청하는 저장 장치; 및 상기 저장 장치로부터 메모리 테스트 요청을 받고, 상기 장치 메모리에 대한 테스트를 실행하며, 테스트 결과를 상기 불휘발성 메모리에 저장하는 호스트를 포함한다.
실시 예로서, 상기 저장 장치는 셀 모니터를 포함하고, 상기 셀 모니터를 통해 상기 장치 메모리의 상태를 감지하며, 상기 장치 메모리의 상태가 일정 조건에 해당하는 경우에 상기 호스트에 메모리 테스트를 요청한다.
상기 저장 장치는 상기 장치 메모리의 ECC 에러가 기준 에러보다 높을 때, 상기 장치 메모리의 누설 전류가 기준 전류 이상으로 증가할 때, 상기 장치 메모리의 온도가 기준 온도 이상으로 증가할 때, 상기 장치 메모리의 사용(utilization)이 기준 시간 이상일 때, 또는 상기 장치 메모리의 일정 사용(utilization) 주기마다 상기 호스트에 메모리 테스트를 요청할 수 있다.
다른 실시 예로서, 상기 호스트는 상기 저장 장치의 메모리 테스트 요청에 응답하여, 상기 장치 메모리를 테스트하고 런 타임 배드 셀을 찾는다. 상기 호스트는 상기 런 타임 배드 셀을 기초로 배드 셀 리스트를 만들고, 상기 불휘발성 메모리에 상기 배드 셀 리스트를 업데이트한다. 상기 불휘발성 메모리는 플래시 메모리이고, 상기 장치 메모리는 디램(DRAM)이다.
본 발명의 다른 실시 예에 따른 스토리지 시스템은, 플래시 메모리 및 디램(DRAM)을 포함하고, 상기 디램에 대한 테스트를 요청하는 저장 장치; 및 상기 저장 장치로부터 메모리 테스트 요청을 받고, 상기 디램에 대한 테스트를 실행하고, 상기 디램의 배드 셀 리스트를 만들고, 상기 플래시 메모리에 배드 셀 리스트를 업데이트하는 호스트를 포함한다.
실시 예로서, 상기 저장 장치는 셀 모니터를 포함하는 메모리 컨트롤러를 더 포함하고, 상기 셀 모니터를 통해 상기 디램의 상태를 감지하며, 상기 디램의 상태가 일정 조건에 해당하는 경우에 상기 호스트에 메모리 테스트를 요청한다. 상기 저장 장치는 상기 디램의 ECC 에러가 기준 에러보다 높거나, 상기 디램의 누설 전류가 기준 전류 이상으로 증가하거나, 상기 디램의 온도가 기준 온도 이상으로 증가하거나, 상기 디램을 기준 시간 이상으로 사용(utilization)하는 경우에, 상기 호스트에 메모리 테스트를 요청한다.
다른 실시 예로서, 상기 저장 장치는 상기 플래시 메모리에 대한 테스트를 요청하고, 상기 호스트는 상기 저장 장치로부터 메모리 테스트 요청을 받고, 상기 플래시 메모리에 대한 테스트를 실행하고, 상기 플래시 메모리의 배드 셀 리스트를 만들고, 상기 플래시 메모리에 배드 셀 리스트를 업데이트한다.
상기 저장 장치는 셀 모니터를 포함하는 메모리 컨트롤러를 더 포함하고, 상기 셀 모니터를 통해 상기 플래시 메모리의 상태를 감지하며, 상기 플래시 메모리의 상태가 일정 조건에 해당하는 경우에 상기 호스트에 메모리 테스트를 요청한다.
상기 저장 장치는 상기 플래시 메모리의 ECC 에러가 기준 에러보다 높거나, 상기 플래시 메모리의 온도가 기준 온도보다 높은 경우에, 상기 호스트에 메모리 테스트를 요청한다. 상기 저장 장치는 상기 플래시 메모리의 셀 전하 누설로 리클레임(reclaim)이 필요한 경우에 상기 호스트에 메모리 테스트를 요청한다.
본 발명의 또 다른 실시 예에 따른 스토리지 시스템은, 데이터를 저장하는 디램(DRAM); 플래시 메모리를 포함하고, 상기 디램에 대한 테스트를 요청하는 저장 장치; 및 상기 저장 장치로부터 메모리 테스트 요청을 받고, 상기 디램에 대한 테스트를 실행하고, 상기 디램의 배드 셀 리스트를 만들고, 상기 플래시 메모리에 배드 셀 리스트를 업데이트하는 호스트를 포함한다.
실시 예로서, 상기 저장 장치는 셀 모니터를 포함하는 메모리 컨트롤러를 더 포함하고, 상기 셀 모니터를 통해 상기 디램의 상태를 감지하며, 상기 디램의 상태가 일정 조건에 해당하는 경우에 상기 호스트에 메모리 테스트를 요청한다.
본 발명의 또 다른 실시 예에 따른 스토리지 시스템은, 플래시 메모리를 포함하는 저장 장치; 상기 저장 장치에 저장될 데이터를 임시로 저장하는 디램(DRAM); 상기 디램으로부터 메모리 테스트 요청을 받고 상기 디램에 대한 테스트를 실행하는, 상기 디램의 배드 셀 리스트를 만드는, 그리고 상기 플래시 메모리에 배드 셀 리스트를 업데이트하는 호스트를 포함한다.
실시 예로서, 상기 저장 장치는 셀 모니터를 포함하는 메모리 컨트롤러를 더 포함하고, 상기 셀 모니터를 통해 상기 디램의 상태를 감지하며, 상기 디램의 상태가 일정 조건에 해당하는 경우에 상기 호스트에 메모리 테스트를 요청한다.
본 발명은 저장 장치의 메모리 테스트 요청에 따라 스토리지 시스템이 테스트 가능할 때, 테스트를 진행하므로 시스템의 성능에 영향을 주지 않고, 제품 사용 중에 발생한 배드 셀을 실시간으로 찾아내고 관리할 수 있다.
도 1은 스토리지 시스템을 보여주는 블록도이다.
도 2는 제품 제조 단계에서 발생한 흠결 배드 셀을 처리하는 방법을 보여주는 순서도이다.
도 3은 제품 사용 중에 발생한 런 타임 배드 셀을 처리하는 방법을 보여주는 순서도이다.
도 4는 도 1에 도시된 스토리지 시스템의 런 타임 배드 셀을 처리하는 다른 방법을 보여주는 블록도이다.
도 5는 도 4에 도시된 스토리지 시스템의 런 타임 배드 셀을 처리하는 방법을 보여주는 순서도이다.
도 6은 본 발명의 실시 예에 따른 스토리지 시스템의 런 타임 배드 셀을 처리하는 방법을 보여주는 블록도이다.
도 7은 도 6에 도시된 메모리 컨트롤러를 예시적으로 보여주는 블록도이다.
도 8은 도 7에 도시된 메모리 컨트롤러의 동작 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 다른 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다.
도 10은 본 발명의 또 다른 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다.
도 11은 본 발명의 또 다른 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다.
도 12는 도 11에 도시된 메모리 컨트롤러를 예시적으로 보여주는 블록도이다.
도 13은 본 발명의 또 다른 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다.
도 14는 도 13에 도시된 메모리 컨트롤러를 예시적으로 보여주는 블록도이다.
도 15는 도 13에 도시된 호스트의 배드 셀 처리 방법을 보여주는 순서도이다.
도 16은 본 발명의 실시 예에 따른 스토리지 시스템의 저장 장치를 메모리 카드에 적용한 예를 보여준다.
도 17은 본 발명의 실시 예에 따른 저장 장치를 솔리드 스테이트 드라이브(SSD)에 적용한 예를 보여주는 블록도이다.
도 18은 도 17에 도시된 SSD 컨트롤러(7210)의 구성을 예시적으로 보여주는 블록도이다.
도 19는 본 발명의 실시 예에 따른 저장 장치를 전자 장치로 구현한 예를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 스토리지 시스템을 보여주는 블록도이다. 도 1을 참조하면, 스토리지 시스템(100)은 호스트(110)와 저장 장치(120)를 포함한다. 호스트(110)와 저장 장치(120)는 SATA(serial ATA), SCSI(small computer small interface), SAS(serial attached SCSI), eMMC(embedded MMC), UFS(universal flash storage) 등과 같은 표준 인터페이스를 통해 연결될 수 있다.
도 1을 참조하면, 호스트 인터페이스(111)와 장치 인터페이스(121)는 데이터나 신호를 주고 받기 위한 데이터 라인(DAT), 전원을 제공하기 위한 전원 라인(PWR), 그리고 제어 신호를 전달하기 위한 제어 라인(CTRL)으로 연결될 수 있다. 호스트(110)는 호스트 컨트롤러(112)와 호스트 메모리(113)를 포함한다.
호스트 컨트롤러(112)는 호스트(110)에서 실행되는 다양한 동작들을 제어한다. 호스트 컨트롤러(112)는 애플리케이션 프로세서(application processor)에서 수행하는 응용 프로그램들을 제어하거나, 파일 시스템(file system)을 이용하여 저장 장치(120)의 파일 또는 데이터를 관리한다. 호스트 컨트롤러(112)는 장치 드라이버(device driver)를 통해 호스트(110)에 연결되어 사용되는 주변 장치들을 구동한다. 그리고 호스트 컨트롤러(112)는 호스트 인터페이스(111)를 통해, 데이터를 저장 장치(120)로 제공하거나 저장 장치(120)로부터 데이터를 입력 받는다.
호스트 메모리(113)는 호스트(110)의 메인 메모리(main memory) 또는 캐시 메모리(cache memory)로 사용될 수 있다. 또한, 호스트 메모리(113)는 애플리케이션, 파일 시스템, 장치 드라이버 등과 같은 소프트웨어를 구동하기 위한 구동 메모리(driving memory)로 사용될 수도 있다.
계속해서 도 1을 참조하면, 저장 장치(120)는 장치 인터페이스(121)를 통해서 호스트(110)와 연결될 수 있다. 저장 장치(120)는 장치 컨트롤러(122), 불휘발성 메모리(123), 그리고 장치 메모리(124)를 포함한다. 장치 컨트롤러(122)는 불휘발성 메모리(123)의 쓰기, 읽기, 소거 등과 같은 전반적인 동작을 제어한다. 장치 컨트롤러(122)는 어드레스 또는 데이터 버스를 통해 불휘발성 메모리(123) 또는 장치 메모리(124)와 데이터를 주고 받는다.
불휘발성 메모리(123)에는 플래시 메모리, EEPROM, MRAM, PRAM, FeRAM 등이 포함될 수 있다. 장치 메모리(124)는 불휘발성 메모리(123)에 저장될 또는 불휘발성 메모리(123)로부터 읽은 데이터를 임시 저장하는 데 사용될 수 있다. 장치 메모리(124)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다. 장치 메모리(124)에는 DRAM, SRAM, MRAM, PRAM, FeRAM 등이 포함될 수 있다. 또한, 장치 메모리(124)는 DRAM과 플래시 메모리의 복합 메모리일 수도 있다.
불휘발성 메모리(123)나 장치 메모리(1240)는 데이터를 저장하기 위한 많은 수의 메모리 셀을 포함하고 있다. 불휘발성 메모리(123)나 장치 메모리(124)는 제품 제조 시 또는 제품 사용 시에 메모리 셀에 불량이 발생할 수 있다. 이하에서는 불량이 발생한 메모리 셀을 배드 셀(bad cell)이라고 한다. 특히, 제조 시에 불량이 발생한 배드 셀은 흠결 배드 셀(defected bad cell)이라 하고, 제품 사용 중에 발생한 배드 셀은 런 타임 배드 셀(run-time bad cell)이라 한다.
도 2는 제품 제조 단계에서 발생한 흠결 배드 셀을 처리하는 방법을 보여주는 순서도이고, 도 3은 제품 사용 중에 발생한 런 타임 배드 셀을 처리하는 방법을 보여주는 순서도이다.
도 2를 참조하면, 제품 제조 단계에서 메모리 전체 영역을 테스트해서 흠결 배드 셀을 찾아낸다(S11). 여기에서, 메모리 전체 영역은 장치 메모리(도 1 참조, 124) 또는 불휘발성 메모리(도 1 참조, 123)를 의미하거나, 이들 두 가지 메모리를 모두 포함할 수 있다.
찾아낸 흠결 배드 셀을 이용하여 배드 셀 리스트(Bad-Cell-List)를 만든다(S12). 배드 셀 리스트는 EEPROM이나 플래시 메모리와 같은 불휘발성 메모리(NVM)에 저장된다(S13). 이후에 오프라이닝(offlining)이나 리맵핑(remapping) 방법을 사용하여 배드 셀 리스트를 처리한다(S14).
도 3을 참조하면, 제품 사용 단계에서는 파워 온 셀프 테스트(POST; power on self test)를 통해 런 타임 배드 셀을 찾아낸다(S21). 파워 온 셀프 테스트(POST)는 스토리지 시스템(도 1 참조, 100)이 파워 온(power-on)될 때 수행된다. S21 단계는 장치 메모리(도 1 참조, 124), 또는 불휘발성 메모리(도 1 참조, 123), 또는 이들 두 가지 메모리 모두에서 수행될 수 있다.
찾아낸 런 타임 배드 셀을 이용하여 배드 셀 리스트(Bad-Cell-List)를 만든다(S22). 배드 셀 리스트는 플래시 메모리와 같은 불휘발성 메모리(NVM)에 저장된다(S23). 이후에 오프라이닝(offlining)이나 리맵핑(remapping) 방법을 사용하여 배드 셀 리스트를 처리한다(S24).
계속해서 도 2 및 도 3을 참조하면, 제품 제조 시에 발생한 흠결 배드 셀은 제품 생산 단계에서 한 번 검사된다. 반면에, 제품 사용 중에 발생한 런 타임 배드 셀은 스토로지 시스템(100)이 파워 온(power on) 될 때마다 검사된다.
도 4는 도 1에 도시된 스토리지 시스템의 런 타임 배드 셀을 처리하는 다른 방법을 보여주는 블록도이다. 도 4를 참조하면, 저장 장치(120)는 불휘발성 메모리(123) 또는 장치 메모리(124)에 문제가 예상되는 경우에, 호스트(110)로 메모리 테스트 요청(memory test request)을 한다. 호스트(110)는 메모리 테스트 요청이 있을 때, 저장 장치(120)에 대한 메모리 테스트 실행(memory test execution)을 수행한다.
도 4를 참조하면, 장치 컨트롤러(122)는 메모리(123 또는 124)의 상태를 감지하고, 일정 조건에 해당하면 메모리 테스트 요청을 할 수 있다. 여기에서, 메모리 테스트 요청을 위한 일정 조건에는 여러 가지가 있을 수 있다.
예를 들면, 메모리 컨트롤러(122)는 메모리(123 또는 124)의 ECC 에러가 일정 수준 이상이거나, 메모리의 누설 전류가 증가하거나, 메모리가 불안정할 때 메모리 테스트 요청을 할 수 있다. 또한, 메모리 컨트롤러(122)는 일정 주기마다 또는 메모리 사용(memory utilization)이 일정 시간 이상일 때 메모리 테스트 요청을 할 수 있다.
도 5는 도 4에 도시된 스토리지 시스템의 런 타임 배드 셀을 처리하는 방법을 보여주는 순서도이다.
도 5를 참조하면, 제품 사용 단계에서 저장 장치(120)에 있는 메모리(도 4 참조, 123 또는 124)에 문제가 예상되면, 저장 장치(120)는 호스트(110)에 메모리 테스트를 요청한다(S105). 호스트(110)는 메모리를 테스트할 수 있는지를 판단한다(S107). 만약 호스트(110)가 메모리를 테스트할 수 없는 상황이면, 테스트 요청을 무시하고 종료한다. 호스트(110)가 테스트할 수 있는 상황이라면, 메모리 테스트 동작을 수행한다.
호스트(110)는 메모리 테스트를 실행하여 런 타임 배드 셀을 찾아낸다(S110). 런 타임 배드 셀을 이용하여 배드 셀 리스트(Bad-Cell-List)를 만들고(S120), 배드 셀 리스트를 불휘발성 메모리(NVM)에 업데이트한다(S130). 오프라이닝(offlining)이나 리맵핑(remapping) 방법을 사용하여 배드 셀 리스트를 처리한다(S140).
도 3에 도시된 런 타임 배드 셀을 처리하는 방법에 의하면, 런 타임 배드 셀은 스토로지 시스템(100)이 파워 온(power on) 될 때마다 검사될 수 있다. 도 5에 도시된 런 타임 배드 셀을 처리하는 방법에 의하면, 런 타임 배드 셀은 저장 장치(120)에 문제가 예상되는 경우에 실시간으로 검사될 수 있다.
도 6은 본 발명의 실시 예에 따른 스토리지 시스템의 런 타임 배드 셀을 처리하는 방법을 보여주는 블록도이다. 도 6을 참조하면, 스토리지 시스템(1000)은 호스트(1100)와 저장 장치(1200)를 포함한다. 저장 장치(1200)는 메모리 컨트롤러(1210), 플래시 메모리(1220), 그리고 디램(1230)을 포함한다.
메모리 컨트롤러(1210)는 셀 모니터(1215)를 포함한다. 셀 모니터(1215)는 디램(1230)의 문제를 감지하거나 예측한다. 메모리 컨트롤러(1210)는 셀 모니터(1215)를 이용하여 디램(1230)의 문제를 예상하고, 호스트(1100)로 메모리 테스트를 요청한다. 호스트(1100)는 메모리 테스트 요청에 따라, 디램(1230)에 대한 테스트를 실행한다. 메모리 컨트롤러(1210)는 디램(1230)의 테스트 결과를 호스트(1100)로 전송하고, 호스트(1100)는 플래시 메모리(1220)에 저장된 배드 셀 리스트(1221)를 업데이트한다.
도 7은 도 6에 도시된 메모리 컨트롤러를 예시적으로 보여주는 블록도이다. 도 7을 참조하면, 메모리 컨트롤러(1210)는 장치 인터페이스(1211), 중앙처리장치(1212), 플래시 컨트롤러(1213), 디램 컨트롤러(1214), 그리고 셀 모니터(1215)를 포함한다. 여기에서, 셀 모니터(1215)는 디램 컨트롤러(1214)의 내부 또는 외부에 위치할 수 있다.
셀 모니터(1215)는 디램(1230)의 상태를 감지하고, 일정 조건에 해당하면 검출 신호를 생성한다. 예를 들면, 셀 모니터(1215)는 디램(1230)에서 사용하는 전압이 불안정하거나, 디램(1230)의 ECC 에러가 일정 수준 이상이거나, 디램(1230)의 온도가 기준보다 높거나, 디램(1230)의 전류 누설(current leakage)이 갑자기 증가할 때, 검출 신호를 생성할 수 있다.
셀 모니터(1215)는 디램(1230)의 사용율(utilization rate)이 기준 시간 동안 일정 수준 이상일 때, 또는 디램(1230)의 일정 주기마다 검출 신호를 생성할 수 있다. 또한, 셀 모니터(1215)는 디램(1230)의 읽기 또는 쓰기 횟수가 일정수준을 초과할 때마다 검출 신호를 생성할 수 있다. 셀 모니터(1215)는 디램(1230)의 이러한 문제들을 검출하기 위하여, 전압 센서, ECC 엔진, 온도 센서, 전류 센서 등을 포함할 수 있다.
도 8은 도 7에 도시된 메모리 컨트롤러의 동작 방법을 설명하기 위한 순서도이다. 도 8을 참조하면, 메모리 컨트롤러(1210)는 디램(1230)에 대한 읽기 또는 쓰기가 있는지를 판단한다(S210). 읽기 또는 쓰기가 없으면(No), S210 단계를 반복한다. 디램(1230)에 대한 읽기 또는 쓰기가 있으면(Yes), 읽기 또는 쓰기 동작을 수행한다(S220).
읽기 또는 쓰기 동작이 수행되는 동안에 또는 완료된 경우에, 디램(1230)의 상태를 체크한다(S230). 메모리 컨트롤러(1210)는 셀 모니터(1215)의 전압 센서, ECC 엔진, 온도 센서, 전류 센서 등을 이용하여, 디램(1230)의 현재 상태를 조사하고, 디램(1230)에 문제가 있는지를 판단한다(S240). 디램(1230)에 문제가 없으면(No), S210 단계로 되돌아 간다. 반면에 디램(1230)에 문제가 예상되면(Yes), 메모리 컨트롤러(1200)는 호스트(1100)에 메모리 테스트를 요청한다(S250).
이후에 호스트(1100)는 메모리 테스트 요청에 따라, 디램(1230)에 대한 테스트를 실행한다. 호스트(1100)는 테스트 결과를 기초로 배드 셀 리스트(bad cell list)를 만들고, 플래시 메모리(1220)에 업데이트한다.
도 9는 본 발명의 다른 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다. 도 9를 참조하면, 스토리지 시스템(2000)은 호스트(2100), 저장 장치(2200), 그리고 디램(2300)을 포함한다. 저장 장치(2200)는 메모리 컨트롤러(2210)와 플래시 메모리(2220)를 포함한다. 메모리 컨트롤러(2210)는 플래시 메모리(2220)의 동작을 제어한다.
도 9를 참조하면, 디램(2300)은 저장 장치(2200) 외부에 위치한다. 디램(2310)은 내부에 셀 모니터(2310)를 포함한다. 셀 모니터(2310)는 디램(2300)의 문제를 감지하거나 예측한다. 디램(2300)은 셀 모니터(2310)를 이용하여 디램(2300)의 문제를 예상하고, 호스트(2100)로 메모리 테스트를 요청한다. 호스트(2100)는 메모리 테스트 요청에 따라, 디램(2300)을 테스트하고, 플래시 메모리(2220)에 저장된 배드 셀 리스트(2221)를 업데이트한다.
도 10은 본 발명의 또 다른 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다. 도 10을 참조하면, 디램(3300)은 저장 장치(3200) 외부에 위치하고, 셀 모니터(3211)는 저장 장치(3200)의 내부에 위치한다.
예를 들면, 셀 모니터(3211)는 메모리 컨트롤러(3210)의 내부에 위치할 수 있다. 메모리 컨트롤러(3210)는 셀 모니터(3211)를 이용하여 디램(3300)의 문제를 예상하고, 호스트(3100)로 메모리 테스트를 요청한다. 호스트(3100)는 메모리 테스트 요청에 따라, 디램(3300)에 대한 테스트를 실행하고, 플래시 메모리(3220)에 저장된 배드 셀 리스트(3221)를 업데이트한다.
도 11은 본 발명의 또 다른 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다. 도 11을 참조하면, 스토리지 시스템(4000)은 호스트(4100)와 저장 장치(4200)를 포함한다. 저장 장치(4200)는 메모리 컨트롤러(4210), 플래시 메모리(4220), 그리고 디램(4230)을 포함한다.
메모리 컨트롤러(4210)는 셀 모니터(4216)를 포함한다. 셀 모니터(4216)는 플래시 메모리(4220)의 문제를 감지하거나 예측한다. 메모리 컨트롤러(4210)는 셀 모니터(4216)를 이용하여 플래시 메모리(4220)의 문제를 예상하고, 호스트(4100)로 메모리 테스트를 요청한다. 호스트(4100)는 플래시 메모리(4220)에 대한 테스트를 실행하고, 플래시 메모리(4220)에 저장된 배드 셀 리스트(4221)를 업데이트한다.
도 12는 도 11에 도시된 메모리 컨트롤러를 예시적으로 보여주는 블록도이다. 도 12를 참조하면, 메모리 컨트롤러(4210)는 장치 인터페이스(4211), 중앙처리장치(4212), 플래시 컨트롤러(4213), 디램 컨트롤러(4214), 그리고 셀 모니터(4216)를 포함한다. 여기에서, 셀 모니터(4216)는 플래시 컨트롤러(4213)의 내부 또는 외부에 위치할 수 있다.
셀 모니터(4216)는 플래시 메모리(4220)의 상태를 감지하고, 일정 조건에 해당하면 검출 신호를 생성한다. 예를 들면, 셀 모니터(4216)는 플래시 메모리(4220)의 ECC 에러가 일정 수준 이상이거나 온도가 기준보다 높을 때 검출 신호를 생성할 수 있다. 또한, 셀 모니터(4216)는 배드 셀 리스트(4221)를 저장하고 있는 플래시 메모리 셀의 전하 누설(charge leakage) 등을 이유로 리클레임(reclaim)이 필요한 경우에 검출 신호를 발생할 수 있다.
또한, 셀 모니터(4216)는 플래시 메모리(4220)의 사용율(utilization rate)이 기준 시간 동안 일정 수준 이상일 때, 또는 플래시 메모리(4220)의 일정 주기마다 검출 신호를 발생할 수 있다. 또한, 셀 모니터(4216)는 플래시 메모리(4220)의 읽기 또는 쓰기 횟수가 일정수준을 초과할 때마다 검출 신호를 생성할 수 있다. 셀 모니터(4216)는 플래시 메모리(4220)의 이러한 문제들을 검출하기 위하여, ECC 엔진이나 온도 센서 등을 포함할 수 있다.
도 13은 본 발명의 또 다른 실시 예에 따른 스토리지 시스템을 보여주는 블록도이다. 도 13을 참조하면, 메모리 컨트롤러(5210)는 제 1 및 제 2 셀 모니터(5215, 5216)를 포함한다. 제 1 셀 모니터(5215)는 디램(5230)의 문제를 감지하고, 제 2 셀 모니터(5216)는 플래시 메모리(5220)의 문제를 감지한다.
메모리 컨트롤러(5210)는 제 1 및 제 2 셀 모니터(5215, 5216)를 이용하여 디램(5230) 및 플래시 메모리(5220)의 문제를 예상하고, 호스트(5100)로 메모리 테스트를 요청할 수 있다. 호스트(5100)는 디램(5230) 및 플래시 메모리(5220)에 대한 테스트를 실행하고, 플래시 메모리(5220)에 저장된 배드 셀 리스트(5221)를 업데이트한다.
도 14는 도 13에 도시된 메모리 컨트롤러를 예시적으로 보여주는 블록도이다. 도 14를 참조하면, 메모리 컨트롤러(5210)는 장치 인터페이스(5211), 중앙처리장치(5212), 플래시 컨트롤러(5213), 디램 컨트롤러(5214), 그리고 제 1 및 제 2 셀 모니터(5215, 5216)를 포함한다. 제 1 및 제 2 셀 모니터(5215, 5216)의 동작 방법은 앞에서 설명한 바와 같다.
도 15는 도 13에 도시된 호스트의 배드 셀 처리 방법을 보여주는 순서도이다. 도 15를 참조하면, 호스트(5100)는 스토리지 시스템(5000)의 유휴 시간(idle time)인지를 판단한다(S310). 호스트(5100)는 유휴 시간이나 스토리지 시스템(5000)의 사용(utilization)이 낮아져 여유가 있을 때 배드 셀 처리 동작을 수행할 수 있다.
유휴 시간인 경우에, 호스트(5100)는 저장 장치(5200)로부터 메모리 테스트 요청이 있었는지를 판단한다(S320). 메모리 테스트 요청이 있으면, 호스트(5100)는 저장 장치(5200)의 메모리에 대한 테스트를 실행한다(S330). 호스트(5100)는 저장 장치(5200)의 테스트 결과에 따라 호스트(5100)의 배드 셀 리스트를 업데이트 한다(S340). 그리고 호스트(5100)는 저장 장치(5200)의 배드 셀 리스트를 업데이트 한다(S350).
한편, S320 단계에서, 저장 장치(5200)로부터 메모리 테스트 요청이 있는 경우에, 호스트(5100)는 저장 장치(5200)의 메모리 테스트 동작을 바로 실행하거나, 내부 스케쥴(schedule)에 따라 메모리 테스트 동작을 실행할 수 있다. 또한, 호스트(5100)는 메모리 테스트 요청이 있더라도, 내부적으로 필요 없다고 판단되면 메모리 테스트 요청을 무시할 수도 있다.
본 발명의 실시 예에 따른 스토리지 시스템은 여러 가지 제품에 적용 또는 응용될 수 있다. 본 발명의 실시 예에 따른 스토리지 시스템은 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 휴대 전화, MP3, PMP, PSP, PDA 등과 같은 전자 장치에 구현될 수 있다. 그리고 스토리지 시스템의 저장 매체는 메모리 카드, USB 메모리, 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD라 함) 등과 같은 저장 장치로 구현될 수 있다.
도 16은 본 발명의 실시 예에 따른 스토리지 시스템의 저장 장치를 메모리 카드에 적용한 예를 보여준다. 메모리 카드 시스템(6000)은 호스트(6100)와 메모리 카드(6200)를 구비한다. 호스트(6100)는 호스트 컨트롤러(6110) 및 호스트 접속 유닛(6120)을 포함한다. 메모리 카드(6200)는 카드 접속 유닛(6210), 카드 컨트롤러(6220), 그리고 플래시 메모리(6230)를 포함한다.
호스트(6100)는 메모리 카드(6200)에 데이터를 쓰거나, 메모리 카드(6200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(6110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(6100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(6120)을 통해 메모리 카드(6200)로 전송한다.
카드 컨트롤러(6220)는 카드 접속 유닛(6210)을 통해 수신된 쓰기 커맨드에 응답하여, 카드 컨트롤러(6220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(6230)에 저장한다. 플래시 메모리(6230)는 호스트(6100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(6100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
도 17은 본 발명의 실시 예에 따른 저장 장치를 솔리드 스테이트 드라이브(SSD)에 적용한 예를 보여주는 블록도이다. 도 17을 참조하면, SSD 시스템(7000)은 호스트(7100)와 SSD(7200)를 포함한다.
SSD(7200)는 신호 커넥터(signal connector, 7211)를 통해 호스트(7100)와 신호를 주고 받으며, 전원 커넥터(power connector, 7221)를 통해 전원을 입력받는다. SSD(7200)는 복수의 플래시 메모리(7201~720n), SSD 컨트롤러(7210), 그리고 보조 전원 장치(7220)를 포함할 수 있다.
복수의 플래시 메모리(7201~720n)는 SSD(7200)의 저장 매체로서 사용된다. SSD(7200)는 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등의 불휘발성 메모리 장치가 사용될 수도 있다. 복수의 플래시 메모리(7201~720n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(7210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 플래시 메모리가 연결될 수 있다. 하나의 채널에 연결되는 플래시 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(7210)는 신호 커넥터(7211)를 통해 호스트(7100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(7210)는 호스트(7100)의 커맨드에 따라 해당 플래시 메모리 에 데이터를 쓰거나 해당 플래시 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(7210)의 내부 구성은 도 18을 참조하여 상세하게 설명된다.
보조 전원 장치(7220)는 전원 커넥터(7221)를 통해 호스트(7100)와 연결된다. 보조 전원 장치(7220)는 호스트(7100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(7220)는 SSD(7200) 내에 위치할 수도 있고, SSD(7200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(7220)는 메인 보드에 위치하며, SSD(7200)에 보조 전원을 제공할 수도 있다.
도 18은 도 17에 도시된 SSD 컨트롤러(7210)의 구성을 예시적으로 보여주는 블록도이다. 도 18을 참조하면, SSD 컨트롤러(7210)는 NVM 인터페이스(7211), 호스트 인터페이스(7212), ECC 회로(7213), 중앙 처리 장치(CPU, 7214), 그리고 버퍼 메모리(7215)를 포함한다.
NVM 인터페이스(7211)는 버퍼 메모리(7215)로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(7211)는 플래시 메모리(7201~720n)로부터 읽은 데이터를 버퍼 메모리(7215)로 전달한다. 여기에서, NVM 인터페이스(7211)는 플래시 메모리의 인터페이스 방식을 사용할 수 있다. 즉, SSD 컨트롤러(7210)는 플래시 메모리 인터페이스 방식에 따라 프로그램, 읽기, 또는 소거 동작 등을 수행할 수 있다.
호스트 인터페이스(7212)는 호스트(7100)의 프로토콜에 대응하여 SSD(7200)와의 인터페이싱을 제공한다. 호스트 인터페이스(7212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(7100)와 통신할 수 있다. 또한, 호스트 인터페이스(7212)는 호스트(7100)가 SSD(7200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
ECC 회로(7213)는 플래시 메모리(7201~720n)로 전송되는 데이터를 이용하여, 에러 정정 코드(ECC)를 생성한다. 그렇게 생성된 에러 정정 코드(ECC)는 플래시 메모리(7201~720n)의 스페어 영역(spare area)에 저장된다. ECC 회로(7213)는 플래시 메모리(7201~720n)로부터 읽은 데이터의 에러를 검출한다. 만약 검출된 에러가 정정 용량 내이면, ECC 회로(7213)는 검출된 에러를 정정한다.
중앙 처리 장치(7214)는 호스트(7100, 도 17 참조)로부터 입력된 신호(SGL)를 분석하고 처리한다. 중앙 처리 장치(7214)는 호스트 인터페이스(7212)나 NVM 인터페이스(7211)를 통해 호스트(7100)나 플래시 메모리(7201~720n)를 제어한다. 중앙 처리 장치(7214)는 SSD(7200)을 구동하기 위한 펌웨어에 따라서 플래시 메모리(7201~720n)의 동작을 제어한다.
버퍼 메모리(7215)는 호스트(7100)로부터 제공되는 쓰기 데이터 또는 플래시 메모리로부터 읽은 데이터를 임시로 저장한다. 또한, 버퍼 메모리(7215)는 플래시 메모리(7201~720n)에 저장될 메타 데이터나 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 버퍼 메모리(7215)에 저장된 메타 데이터나 캐시 데이터는 플래시 메모리(7201~720n)에 저장된다. 버퍼 메모리(7215)에는 DRAM, SRAM 등이 포함될 수 있다.
도 19는 본 발명의 실시 예에 따른 저장 장치를 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(8000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 19를 참조하면, 전자 장치(8000)는 메모리 시스템(8100), 전원 장치(8200), 보조 전원 장치(8250), 중앙처리장치(8300), 램(5400), 그리고 사용자 인터페이스(5500)를 포함한다. 메모리 시스템(8100)은 플래시 메모리(8110) 및 메모리 컨트롤러(8120)를 포함한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000, 2000, 3000, 4000, 5000: 스토리지 시스템
1100, 2100, 3100, 4100, 5100: 호스트
1200, 2200, 3200, 4200, 5200: 저장 장치

Claims (20)

  1. 불휘발성 메모리 및 장치 메모리를 포함하고 상기 장치 메모리에 대한 테스트를 요청하는 저장 장치; 및
    상기 저장 장치로부터 메모리 테스트 요청을 받고, 상기 장치 메모리에 대한 테스트를 실행하며, 테스트 결과를 상기 불휘발성 메모리에 저장하는 호스트를 포함하는 스토리지 시스템.
  2. 제 1 항에 있어서,
    상기 저장 장치는 셀 모니터를 포함하고, 상기 셀 모니터를 통해 상기 장치 메모리의 상태를 감지하며, 상기 장치 메모리의 상태가 일정 조건에 해당하는 경우에 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
  3. 제 2 항에 있어서,
    상기 저장 장치는 상기 장치 메모리의 ECC 에러가 기준 에러보다 높을 때, 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
  4. 제 2 항에 있어서,
    상기 저장 장치는 상기 장치 메모리의 누설 전류가 기준 전류 이상으로 증가할 때, 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
  5. 제 2 항에 있어서,
    상기 저장 장치는 상기 장치 메모리의 온도가 기준 온도 이상으로 증가할 때, 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
  6. 제 2 항에 있어서,
    상기 저장 장치는 상기 장치 메모리의 사용율(utilization)이 기준 시간 동안 일정 수준이상일 때, 또는 상기 장치 메모리의 일정 주기마다 상기 호스트에 대한 메모리 테스트를 요청하는 스토리지 시스템.
  7. 제 2 항에 있어서,
    상기 저장 장치는 상기 장치 메모리의 읽기 또는 소거 횟수가 일정 수준을 초과할 때마다 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
  8. 제 1 항에 있어서,
    상기 호스트는 상기 저장 장치의 메모리 테스트 요청에 응답하여, 상기 장치 메모리를 테스트하고 런 타임 배드 셀을 찾는 스토리지 시스템.
  9. 제 8 항에 있어서,
    상기 호스트는 상기 런 타임 배드 셀을 기초로 배드 셀 리스트를 만들고, 상기 불휘발성 메모리에 상기 배드 셀 리스트를 업데이트하는 스토리지 시스템.
  10. 제 9 항에 있어서,
    상기 불휘발성 메모리는 플래시 메모리이고, 상기 장치 메모리는 디램(DRAM), 또는 피램(PRAM), 또는 디램과 플래시 메모리의 복합 메모리인 스토리지 시스템.
  11. 플래시 메모리 및 디램(DRAM)을 포함하고, 상기 디램에 대한 테스트를 요청하는 저장 장치; 및
    상기 저장 장치로부터 메모리 테스트 요청을 받고, 상기 디램에 대한 테스트를 실행하고, 상기 디램의 배드 셀 리스트를 만들고, 상기 플래시 메모리에 배드 셀 리스트를 업데이트하는 호스트를 포함하는 스토리지 시스템.
  12. 제 11 항에 있어서,
    상기 저장 장치는 셀 모니터를 포함하는 메모리 컨트롤러를 더 포함하고, 상기 셀 모니터를 통해 상기 디램의 상태를 감지하며, 상기 디램의 상태가 일정 조건에 해당하는 경우에 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
  13. 제 12 항에 있어서,
    상기 저장 장치는 상기 디램의 ECC 에러가 기준 에러보다 높거나, 상기 디램의 누설 전류가 기준 전류 이상으로 증가하거나, 상기 디램의 온도가 기준 온도 이상으로 증가하거나, 상기 디램을 기준 시간 이상으로 사용(utilization)하는 경우에, 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
  14. 제 11 항에 있어서,
    상기 저장 장치는 상기 플래시 메모리에 대한 테스트를 요청하고,
    상기 호스트는 상기 저장 장치로부터 메모리 테스트 요청을 받고, 상기 플래시 메모리에 대한 테스트를 실행하고, 상기 플래시 메모리의 배드 셀 리스트를 만들고, 상기 플래시 메모리에 배드 셀 리스트를 업데이트하는 스토리지 시스템.
  15. 제 14 항에 있어서,
    상기 저장 장치는 셀 모니터를 포함하는 메모리 컨트롤러를 더 포함하고, 상기 셀 모니터를 통해 상기 플래시 메모리의 상태를 감지하며, 상기 플래시 메모리의 상태가 일정 조건에 해당하는 경우에 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
  16. 제 15 항에 있어서,
    상기 저장 장치는 상기 플래시 메모리의 ECC 에러가 기준 에러보다 높거나, 상기 플래시 메모리의 온도가 기준 온도보다 높은 경우에, 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
  17. 데이터를 저장하는 디램(DRAM);
    플래시 메모리를 포함하고, 상기 디램에 대한 테스트를 요청하는 저장 장치; 및
    상기 저장 장치로부터 메모리 테스트 요청을 받고, 상기 디램에 대한 테스트를 실행하고, 상기 디램의 배드 셀 리스트를 만들고, 상기 플래시 메모리에 배드 셀 리스트를 업데이트하는 호스트를 포함하는 스토리지 시스템.
  18. 제 17 항에 있어서,
    상기 저장 장치는 셀 모니터를 포함하는 메모리 컨트롤러를 더 포함하고, 상기 셀 모니터를 통해 상기 디램의 상태를 감지하며, 상기 디램의 상태가 일정 조건에 해당하는 경우에 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
  19. 플래시 메모리를 포함하는 저장 장치;
    상기 저장 장치에 저장될 데이터를 임시로 저장하는 디램(DRAM);
    상기 디램으로부터 메모리 테스트 요청을 받고 상기 디램에 대한 테스트를 실행하는, 상기 디램의 배드 셀 리스트를 만드는, 그리고 상기 플래시 메모리에 배드 셀 리스트를 업데이트하는 호스트를 포함하는 스토리지 시스템.
  20. 제 19 항에 있어서,
    상기 저장 장치는 셀 모니터를 포함하는 메모리 컨트롤러를 더 포함하고, 상기 셀 모니터를 통해 상기 디램의 상태를 감지하며, 상기 디램의 상태가 일정 조건에 해당하는 경우에 상기 호스트에 메모리 테스트를 요청하는 스토리지 시스템.
KR1020140087001A 2014-07-10 2014-07-10 런 타임 배드 셀을 관리하는 스토리지 시스템 KR102179829B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140087001A KR102179829B1 (ko) 2014-07-10 2014-07-10 런 타임 배드 셀을 관리하는 스토리지 시스템
US14/796,533 US9824777B2 (en) 2014-07-10 2015-07-10 Storage system managing run-time bad cells

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140087001A KR102179829B1 (ko) 2014-07-10 2014-07-10 런 타임 배드 셀을 관리하는 스토리지 시스템

Publications (2)

Publication Number Publication Date
KR20160007988A true KR20160007988A (ko) 2016-01-21
KR102179829B1 KR102179829B1 (ko) 2020-11-18

Family

ID=55068067

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140087001A KR102179829B1 (ko) 2014-07-10 2014-07-10 런 타임 배드 셀을 관리하는 스토리지 시스템

Country Status (2)

Country Link
US (1) US9824777B2 (ko)
KR (1) KR102179829B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592130B2 (en) 2016-09-28 2020-03-17 Samsung Electronics Co., Ltd. Computing systems including storage devices controlled by hosts

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10105189B2 (en) * 2015-11-10 2018-10-23 Mako Surgical Corp. Techniques for correcting an error in a nonvolatile memory of an embedded component for an end effector in a robotic surgical system
CN107025941A (zh) * 2016-01-29 2017-08-08 瑞昱半导体股份有限公司 固态硬盘控制电路
CN109215724B (zh) * 2017-07-05 2021-01-15 北京兆易创新科技股份有限公司 存储器自动检测和修复的方法及装置
KR102669545B1 (ko) 2019-07-23 2024-05-27 삼성전자주식회사 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치
EP3825855A1 (en) * 2019-11-20 2021-05-26 Carrier Corporation Variable memory diagnostics
CN111508551B (zh) * 2020-05-20 2022-06-17 尧云科技(西安)有限公司 固态硬盘多功能自动测试系统及其方法
KR20220157793A (ko) * 2021-05-21 2022-11-29 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883843A (en) * 1996-04-30 1999-03-16 Texas Instruments Incorporated Built-in self-test arrangement for integrated circuit memory devices
US5991213A (en) * 1997-04-30 1999-11-23 Texas Instruments Incorporated Short disturb test algorithm for built-in self-test
US20100241914A1 (en) * 2009-03-20 2010-09-23 Phison Electronics Corp. Controller having flash memory testing functions, and storage system and testing method thereof

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684353B1 (en) * 2000-12-07 2004-01-27 Advanced Micro Devices, Inc. Reliability monitor for a memory array
JP2003016798A (ja) 2001-06-27 2003-01-17 Mitsubishi Electric Corp メモリテスト方法および多層メモリ
US7944920B2 (en) * 2002-06-11 2011-05-17 Pandya Ashish A Data processing system using internet protocols and RDMA
JP2004055041A (ja) 2002-07-19 2004-02-19 Renesas Technology Corp 半導体集積回路
US20040088614A1 (en) 2002-11-01 2004-05-06 Ting-Chin Wu Management system for defective memory
US7162625B2 (en) * 2003-03-10 2007-01-09 Dell Products L.P. System and method for testing memory during boot operation idle periods
US7143236B2 (en) * 2003-07-30 2006-11-28 Hewlett-Packard Development Company, Lp. Persistent volatile memory fault tracking using entries in the non-volatile memory of a fault storage unit
JP2006309909A (ja) 2005-03-31 2006-11-09 Sharp Corp 半導体装置およびそのテスト方法、電子情報機器
US8024508B2 (en) * 2006-03-21 2011-09-20 Lg Electronics Inc. Computer storage control
JP2008107897A (ja) 2006-10-23 2008-05-08 Elpida Memory Inc 半導体記憶装置
US7642105B2 (en) 2007-11-23 2010-01-05 Kingston Technology Corp. Manufacturing method for partially-good memory modules with defect table in EEPROM
JP5157388B2 (ja) 2007-11-26 2013-03-06 日本電気株式会社 半導体記憶装置及び劣化セル列救済方法
JP5127737B2 (ja) 2009-02-04 2013-01-23 株式会社東芝 半導体装置
US8315117B2 (en) * 2009-03-31 2012-11-20 Freescale Semiconductor, Inc. Integrated circuit memory having assisted access and method therefor
KR101631162B1 (ko) * 2009-06-11 2016-06-17 삼성전자주식회사 플래시 메모리를 구비하는 저장 장치 및 이의 데이터 저장 방법
US8880779B2 (en) * 2011-08-05 2014-11-04 Apple Inc. Debugging a memory subsystem
US9063827B2 (en) * 2012-02-24 2015-06-23 Dell Products L.P. Systems and methods for storing and retrieving a defect map in a DRAM component

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883843A (en) * 1996-04-30 1999-03-16 Texas Instruments Incorporated Built-in self-test arrangement for integrated circuit memory devices
US5991213A (en) * 1997-04-30 1999-11-23 Texas Instruments Incorporated Short disturb test algorithm for built-in self-test
US20100241914A1 (en) * 2009-03-20 2010-09-23 Phison Electronics Corp. Controller having flash memory testing functions, and storage system and testing method thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592130B2 (en) 2016-09-28 2020-03-17 Samsung Electronics Co., Ltd. Computing systems including storage devices controlled by hosts
US11157180B2 (en) 2016-09-28 2021-10-26 Samsung Electronics Co., Ltd. Computing systems including storage devices controlled by hosts
US11579779B2 (en) 2016-09-28 2023-02-14 Samsung Electronics Co., Ltd. Computing systems including storage devices controlled by hosts

Also Published As

Publication number Publication date
US20160012918A1 (en) 2016-01-14
US9824777B2 (en) 2017-11-21
KR102179829B1 (ko) 2020-11-18

Similar Documents

Publication Publication Date Title
KR102179829B1 (ko) 런 타임 배드 셀을 관리하는 스토리지 시스템
US8230161B2 (en) Data backup method for a flash memory and controller and storage system using the same
JP5002719B1 (ja) 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法
JP4489127B2 (ja) 半導体記憶装置
US9164833B2 (en) Data storage device, operating method thereof and data processing system including the same
CN107544919B (zh) 数据储存装置的数据储存方法
US9519436B1 (en) Memory erasing method, memory controller, and memory storage apparatus
US10860247B2 (en) Data writing method and storage controller
US20120066568A1 (en) Storage device, electronic device, and data error correction method
TWI473099B (zh) 記憶體儲存裝置、記憶體控制器與控制方法
JP2013047913A (ja) 情報処理装置、情報処理装置の制御方法、制御ツール、及びホスト装置
TWI554886B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
KR20150029402A (ko) 데이터 저장 시스템 및 그것의 동작 방법
TW201527973A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US9372741B2 (en) Data storage device and operating method thereof
KR20160074025A (ko) 데이터 저장 장치의 동작 방법
TW201734793A (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TW201312573A (zh) 快閃記憶體儲存裝置及其不良儲存區域的判定方法
JP5668163B2 (ja) 情報処理装置
JP6190488B2 (ja) 情報記録システム
JP2014032679A (ja) ホスト装置および制御ツール
JP6403130B2 (ja) 情報記録システム
US20150169235A1 (en) Data storage device and operating method thereof
JP2019008814A (ja) 半導体記憶装置
KR20140090416A (ko) 데이터 저장 장치의 동작 방법

Legal Events

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