KR20170051843A - 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템 - Google Patents

호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20170051843A
KR20170051843A KR1020150153278A KR20150153278A KR20170051843A KR 20170051843 A KR20170051843 A KR 20170051843A KR 1020150153278 A KR1020150153278 A KR 1020150153278A KR 20150153278 A KR20150153278 A KR 20150153278A KR 20170051843 A KR20170051843 A KR 20170051843A
Authority
KR
South Korea
Prior art keywords
read
latency
storage device
host device
retention
Prior art date
Application number
KR1020150153278A
Other languages
English (en)
Other versions
KR102306853B1 (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 KR1020150153278A priority Critical patent/KR102306853B1/ko
Priority to US15/290,056 priority patent/US9847136B2/en
Publication of KR20170051843A publication Critical patent/KR20170051843A/ko
Application granted granted Critical
Publication of KR102306853B1 publication Critical patent/KR102306853B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0466Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 실시 예에 따른 호스트 장치가 스토리지 장치를 제어하는 방법은 호스트 장치가 스토리지 장치를 제어하여 선택된 메모리 영역들에 읽기 데이터 단위의 읽기 동작을 수행하는 단계, 호스트 장치가 스토리지 장치에서 수행된 상기 읽기 동작에 대응된 읽기 레이턴시를 읽기 레이턴시 테이블로 저장하는 단계, 읽기 레이턴시 테이블로 저장된 읽기 레이턴시를 기반으로 레이턴시 변화량이 문턱 값을 초과하는지 여부를 판단하는 단계 및 레이턴시 변화량이 문턱 값을 초과하는 경우, 호스트 장치가 리텐션 커맨드를 통해 스토리지 장치에 데이터 리텐션 동작(Data retention operation)을 요청하는 단계를 포함한다.

Description

호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템{OPERATING METHOD FOR HOST DEVICE AND MEMORY SYSTEM INCLUDING HOST DEVICE AND STORAGE DEVICE}
본 발명은 메모리 장치에 관한 것으로, 좀 더 구체적으로는 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템에 관한 것이다.
최근에는 디지털 카메라, MP3 플레이어, 휴대 전화, 태블릿 PC 등과 같은 모바일 전자 장치가 많이 사용되고 있다. 이러한 모바일 전자 장치에는 플래시 메모리와 같은 불휘발성 메모리 장치가 데이터의 저장 매체로 사용되고 있다. 불휘발성 메모리 장치는 전원이 차단되더라도 데이터를 잃지 않으며, 저전력 및 고집적 특성을 가진다.
불휘발성 메모리 장치에 있어서, 데이터 보유 특성(Data retention characteristics)은 데이터의 신뢰성에 관련된 중대한 관심사이다. 플래시 메모리 장치의 경우, 플로팅 게이트 또는 전하 포획막에 저장된 전하(또는, 전자)는 다양한 원인에 따라 외부로 누설될 수 있다. 예를 들면, 결함 절연막을 통한 열이온 방출 및 전하 확산, 이온 불순물, 시간의 경과 등과 같은 다양한 페일 메커니즘들을 통해 플로팅 게이트로부터 누설될 수 있다. 전하의 누설은 메모리 셀의 문턱 전압의 감소를 야기할 것이다. 반대로 다양한 스트레스에 의해서 메모리 셀의 문턱 전압은 상승할 수도 있다. 이러한 메모리 셀의 문턱 전압의 변화에 따른 문제를 리텐션 문제(Retention Problem)라 한다.
효율적인 데이터 리텐션 스킴을 적용하면, 전하 누설과 같은 원인으로 발생하는 신뢰성 저하를 효과적으로 차단할 수 있다.
본 발명의 목적은 메모리 장치의 고온 현상 또는 비주기적인 사용에 따른 리텐션 문제를 방지하여 향상된 신뢰성을 갖는 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템을 제공하는데 있다.
본 발명은 호스트 장치가 스토리지 장치를 제어하는 방법에 관한 것이다. 호스트 장치가 스토리지 장치를 제어하여 선택된 메모리 영역들에 읽기 데이터 단위의 읽기 동작을 수행하는 단계, 호스트 장치가 스토리지 장치에서 수행된 읽기 동작에 대응된 읽기 레이턴시를 읽기 레이턴시 테이블로 저장하는 단계, 읽기 레이턴시 테이블로 저장된 읽기 레이턴시를 기반으로 레이턴시 변화량이 문턱 값을 초과하는지 여부를 판단하는 단계 및 레이턴시 변화량이 문턱 값을 초과하는 경우, 호스트 장치가 리텐션 커맨드를 통해 스토리지 장치에 데이터 리텐션 동작을 요청하는 단계를 포함한다.
본 발명의 실시 예에 따르면, 레이턴시 변화량(Latency change ratio)이 문턱 값을 초과하는지를 판단하고, 판단된 스토리지 장치에 데이터 리텐션 동작(Data retention operation)을 수행함으로써, 메모리 장치의 고온 현상 또는 비주기적인 사용에 따른 리텐션 문제(Retention problem)를 방지할 수 있다. 이에 따라, 향상된 신뢰성을 갖는 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 차량용 메모리 시스템이 제공된다.
도 1은 본 발명에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 도 1의 스토리지 컨트롤러의 구성을 예시적으로 보여주는 블록도이다.
도 3은 고온 또는 비주기적 동작 환경에서 메모리 장치에 발생할 수 있는 리텐션 문제 및 본 발명의 실시 예에 따른 데이터 리텐션 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법에 관한 순서도이다.
도 5는 읽기 레이턴시들을 저장 및 관리하는 읽기 레이턴시 테이블(RLAT)에 관한 도면이다.
도 6은 리텐션 메니저가 도 5의 읽기 레이턴시 테이블을 이용하여 도 4의 S140 단계를 수행하는 과정에 대한 도면이다.
도 7은 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 8은 본 발명의 다른 실시 예에 따른 메모리 시스템의 동작 방법에 관한 순서도이다.
도 9는 다른 실시 예에 따를 ‹š, 읽기 레이턴시들을 저장 및 관리하는 읽기 레이턴시 테이블에 관한 도면이다.
도 10은 리텐션 메니저가 도 9의 제 1 및 제 2 읽기 레이턴시 테이블을 이용하여 도 8의 S241 단계 및 S242 단계를 수행하는 과정에 대한 도면이다.
도 11은 본 발명의 실시 예에 따른 메모리 블록(BLKa)을 보여주는 회로도이다.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.
본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한, 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.
도 1은 본 발명에 따른 메모리 시스템(100)를 보여주는 블록도이다.
도 1을 참조하면, 본 발명에 따른 메모리 시스템(100)은 호스트 장치(200)와 스토리지 장치(300)를 포함할 수 있다.
호스트 장치(200)는 스토리지 장치(300)에 읽기 명령어(CMD_R) 및 리텐션 명령어(CMD_RE)를 제공할 수 있다. 호스트 장치(200)는 읽기 명령어(CMD_R)를 통해 스토리지 장치(300)에 읽기 동작이 수행되도록 제어할 수 있다. 그리고, 호스트 장치(200)는 리텐션 명령어(CMD_RE)를 통해 스토리지 장치(300)에 데이터 리텐션 동작(Data retention operation)이 수행되도록 제어할 수 있다.
본 발명의 호스트 장치(200)는 프로세서(210), 호스트 메모리(220), 인터페이스 회로(230)를 포함할 수 있다.
프로세서(Processor, 210)는 호스트 메모리(220)에 로드된 다양한 소프트웨어(응용 프로그램, 운영 체제, 장치 드라이버)를 실행할 수 있다. 프로세서(210)는 운영 체제(OS) 및 응용 프로그램들(Application Program)을 실행할 수 있다. 프로세서(210)는 동종 멀티-코어 프로세서(Homogeneous Multi-Core Processor) 또는 이종 멀티-코어 프로세서(Heterogeneous Multi-Core Processor)로 제공될 수 있다.
호스트 메모리(220)는 프로세서(210)에서 처리할 응용 프로그램이나 데이터들이 로드될 수 있다. 예를 들어, 호스트 메모리(220)는 응용 프로그램, 파일 시스템 및 장치 드라이버 등이 로드될 수 있다.
호스트 메모리(220)에는 읽기 레이턴시(Read Latency, RL)의 관리를 위한 리텐션 매니저(Retention manager, RM) 및 읽기 레이턴시 테이블(RLAT)이 로드될 수 있다.
읽기 레이턴시(RL)는 호스트 장치(200)의 읽기 명령어(CMD_R)에 따라 읽기 데이터 단위의 읽기 데이터(DATA)가 스토리지 장치(300)로부터 읽혀져 호스트 장치(200)에 도달하는 시간이다. 예를 들어, 리텐션 매니저(RM)는 호스트 장치(200)의 PROM(Programmable ROM, 미도시) 또는 스토리지 장치(300) 저장될 수 있다. 그리고, 리텐션 매니저(RM)는 PROM(미도시) 또는 스토리지 장치(300)으로부터 호스트 메모리(220)에 로드될 수 있다.
구체적으로, 호스트 장치(200)의 리텐션 매니저(RM)는 스토리지 장치(300)에서 수행된 읽기 동작에 대응된 읽기 레이턴시(RL)를 저장 및 관리할 수 있다. 예를 들어, 호스트 장치(200)의 리텐션 매니저(RM)는 스토리지 장치(300)에서 수행된 읽기 동작의 읽기 레이턴시(RL)들을 읽기 레이턴시 테이블(Read Latency Table, RLAT)로 저장할 수 있다. 그리고, 읽기 레이턴시 테이블(RLAT)에 읽기 레이턴시(RL)를 저장하는 과정은 후술하는 도면들에서 상세하게 설명될 것이다.
호스트 장치(200)의 리텐션 매니저(RM)는 스토리지 장치(300)로 전달된 읽기 명령어에 대한 읽기 레이턴시(RL)를 관리할 수 있다. 예를 들어, 호스트 장치(200)의 리텐션 매니저(RM)는 읽기 레이턴시 테이블(RLAT)에 저장된 읽기 레이턴시(RL)들을 관리할 수 있다. 구체적으로, 리텐션 매니저(RM)는 레이턴시 변화량(Latency change ratio)이 문턱 값(Threshold Value, 이하 TH_V)을 초과하는지 여부를 판단할 수 있다. 이 경우, 레이턴시 변화량(Latency change ratio)은 가장 최근 수행된 읽기 동작의 읽기 레이턴시와 직전에 수행된 읽기 동작의 읽기 레이턴시의 차이일 수 있다.
이어, 호스트 장치(200)의 리텐션 매니저(RM)는 레이턴시 변화량(Latency change ratio)과 문턱 값(TH_V)의 비교 결과에 따라 스토리지 장치(300)에서 리텐션 문제(Retention Problem)가 발생했는지의 여부를 판단할 수 있다. 예를 들어, 레이턴시 변화량(Latency change ratio)이 문턱 값(TH_V)을 초과하는 경우, 리텐션 매니저(RM)는 스토리지 장치(300)를 리텐션 문제(Retention Problem)가 발생할 가능성이 높다고 판단할 수 있다. 레이턴시 변화량을 문턱 값(TH_V)과 비교하여 스토리지 장치(300)의 리텐션 문제(Retention Problem)가 발생했는지의 여부를 판단하는 과정은 후술하는 도면들에서 상세하게 설명될 것이다.
이어, 호스트 장치(200)의 리텐션 매니저(RM)는 리텐션 문제(Retention Problem)가 발생할 가능성이 높다고 판단된 스토리지 장치에서 데이터 리텐션 동작(Data retention operation)이 수행되도록 제어할 수 있다. 구체적으로, 리텐션 매니저(RM)는 후술되는 인터페이스 회로(230)를 통해 리텐션 명령어(CMD_RE)가 스토리지 장치(300)로 출력되도록 제어할 수 있다.
즉, 호스트 장치(200)는 리텐션 명령어(CMD_RE)를 통해 스토리지 장치(300)의 읽기 동작이 수행된 페이지를 포함하는 블록에서 데이터 리텐션 동작(Data retention operation)이 수행되도록 제어할 수 있다. 호스트 장치(200)의 호스트 메모리(220)에 로드된 리텐션 매니저(RM)의 동작에 관하여는 후술하는 도면들에서 상세히 설명될 것이다.
인터페이스 회로(230)는 호스트 장치(200)와 스토리지 장치(300) 사이에서 물리적인 연결을 제공할 수 있다. 즉, 인터페이스 회로(230)는 호스트 장치(200)에서 발행하는 다양한 접근 요청에 대응하는 명령어, 어드레스, 데이터 등의 데이터의 포맷을 변환하거나 교환되는 명령어의 포맷을 변환하여 스토리지 장치(300)와 연결될 수 있다. 인터페이스 회로(230)의 프로토콜은 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 중 적어도 어느 하나일 수 있다.
내부 버스(240)는 데이터 버스 및 제어 버스로 구분될 수 있다. 데이터 버스는 호스트 장치(200) 내에서 데이터를 전송하고, 제어 버스는 호스트 장치(200) 내에서 커맨드, 어드레스와 같은 제어 정보를 전송하도록 구성될 수 있다.
스토리지 장치(300)는 호스트 장치(200)로부터 제공되는 명령어(CMD)에 응답하여 불휘발성 메모리 장치(330)에 접근하거나 요청된 동작들을 수행할 수 있다. 그리고, 스토리지 장치(300)는 스토리지 컨트롤러(310), 버퍼 메모리(320), 불휘발성 메모리 장치(330)를 포함할 수 있다.
스토리지 컨트롤러(310)는 호스트 장치(200)와 스토리지 장치(300) 사이에서 교환되는 데이터의 크기를 조절하거나 교환되는 명령어의 크기를 변환할 수 있다.
버퍼 메모리(320)는 쓰기 데이터(Write data)나 읽기 데이터(Read data)를 일시 저장할 수 있다.
불휘발성 메모리 장치(330)는 스토리지 컨트롤러(310)의 제어에 따라 읽기/쓰기 동작을 수행한다.
도 2는 도 1의 스토리지 컨트롤러(310)의 구성을 예시적으로 보여주는 블록도이다. 스토리지 컨트롤러(310)는 호스트 장치(200)와 스토리지 장치(300) 사이에서 교환되는 데이터의 크기를 조절하거나 교환되는 명령어의 크기를 조절할 수 있다.
도 2를 참조하면, 스토리지 컨트롤러(310)는 중앙처리장치(311), 호스트 인터페이스(312), 버퍼 매니저(313), 플래시 인터페이스(314) 및 에러 정정 블록(315)를 포함할 수 있다.
중앙처리장치(311)는 불휘발성 메모리 장치(300)에 대한 읽기/쓰기 동작에 필요한 다양한 제어 정보를 호스트 인터페이스(312) 및 플래시 인터페이스(314)의 레지스터들에 전달한다. 중앙처리장치(311)는 스토리지 컨트롤러(310)의 다양한 제어 동작을 위해 제공되는 펌웨어에 따라 동작할 수 있다. 예를 들면, 중앙처리장치(311)는 불휘발성 메모리 장치(300)를 관리하기 위한 가비지 컬렉션(Garbage collection)이나, 주소 맵핑, 웨어 레벨링 등을 수행하기 위한 플래시 변환 계층(FTL)을 실행할 수 있다.
호스트 인터페이스(312)는 호스트 장치(200)와의 통신을 수행할 수 있다. 호스트 인터페이스(312)는 호스트 장치(200)와 스토리지 장치(300)와의 물리적 연결을 제공할 수 있다. 즉, 호스트 인터페이스(312)는 호스트 장치(200)의 버스 포맷(Bus format)에 대응하여 스토리지 장치(300)와 교환되는 데이터의 크기를 조절하거나 교환되는 명령어의 포맷을 변환할 수 있다.
호스트 장치(200)의 버스 포맷은 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 중 적어도 하나로 구성될 수 있다. 호스트 인터페이스(312)는 바람직하게 PCI express 방식으로 데이터를 교환하는 호스트 장치(200)에 장착되는 NVMe 프로토콜이 적용된 것일 수 있다.
버퍼 매니저(313)는 버퍼 메모리(320, 도 1 참조)의 읽기 및 쓰기 동작들을 제어한다. 예를 들면, 버퍼 매니저(313)는 쓰기 데이터(Write data)나 읽기 데이터(Read data)를 버퍼 메모리(320)에 일시 저장한다. 버퍼 매니저(313)는 중앙처리장치(311)의 제어에 따라 버퍼 메모리(320)의 메모리 영역을 스트림 단위로 구분하여 관리할 수 있다.
플래시 인터페이스(314)는 불휘발성 메모리 장치(300)와 데이터를 교환할 수 있다. 플래시 인터페이스(314)는 버퍼 메모리(320)로부터 전달되는 데이터를 메모리 채널(CH)을 경유하여 플래시 메모리 장치(300)에 기입할 수 있다. 그리고 메모리 채널(CH)을 통하여 제공되는 불휘발성 메모리 장치(300)로부터의 읽기 데이터(DATA)는 플래시 인터페이스(314)에 의해서 취합될 수 있다. 취합된 데이터는 이후 버퍼 메모리(320)에 저장될 수 있다.
에러 정정 블록(315)은 에러 정정을 수행할 수 있다. 에러 정정 블록(315)은 플래시 인터페이스(314)를 통해 불휘발성 메모리 장치(300)에 기입될 데이터에 기반하여 에러 정정 인코딩을 수행할 수 있다. 에러 정정 인코딩된 데이터는 메모리 인터페이스(314)를 통해 불휘발성 메모리 장치(330)로 전달될 수 있다. 에러 정정 블록(315)은 불휘발성 메모리 장치(330)로부터 플래시 인터페이스(314)를 통해 수신되는 데이터에 대해 에러 정정 디코딩을 수행할 수 있다. 예시적으로, 에러 정정 블록(315)은 플래시 인터페이스(314)의 구성 요소로서 플래시 인터페이스(314)에 포함될 수 있다.
특히, 에러 정정 블록(315)에서 수행되는 에러 정정은 리텐션 문제(Retention Problem)와도 관련된다. 구체적으로, 고온 환경에서 또는 비주기적으로 사용되는 메모리 장치의 읽기 데이터에 포함된 에러의 수는 상온에서 또는 주기적으로 사용되는 스토리지 장치의 읽기 데이터에 포함된 에러의 수보다 많다. 결과적으로, 에러 정정 블록(315)에서 수행되는 에러 정정의 시간이 증가하게 되고, 이는 스토리지 장치(300)로부터 호스트 장치(200)에 도달하는 시간이 증가, 즉 읽기 레이턴시(RL)의 증가를 유발시킬 수 있다.
도 3은 고온 또는 비주기적 동작 환경에서 메모리 장치에 발생할 수 있는 리텐션 문제(Retention Problem) 및 본 발명의 실시 예에 따른 데이터 리텐션 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 메모리 셀의 문턱 전압은 시간의 경과에 따른 전하 누설이나 절연막의 결함과 같은 원인으로 시간이 경과함에 따라 낮아질 수 있다. 이에 따라 읽기 데이터에 포함된 에러의 수가 증가할 수 있다. 이러한 메모리 셀의 문턱 전압의 변화에 따른 문제를 리텐션 문제(Retention Problem)라 한다.
이러한 리텐션 문제(Retention Problem)를 극복하기 위한 데이터 리텐션 동작은 메모리 셀의 낮아진 문턱 전압을 복구시키는 동작이다.
도 3의 X축은 문턱 전압(Vth)을 의미하고, Y축은 메모리 셀들의 개수를 의미한다. 데이터의 기입에 의해서 복수의 메모리 셀들은 프로그램 상태(P1)로 프로그램된다. 프로그램 동작시 메모리 셀들은 검증 전압(Vfy) 이상의 문턱 전압을 갖도록 프로그램될 수 있다. 그러나 시간의 경과에 따라, 또는 절연막의 결함에 의해서 플로팅 게이트에 주입된 전자가 누설될 수 있다. 이 경우, 메모리 셀의 문턱 전압 산포는 프로그램 상태(P1)로부터 누설 상태(P1′)로 이동할 수 있다.
누설 상태(P1′)는 시간의 경과에 따라 점점 더 낮은 문턱 전압 레벨로 이동할 것이다. 만일, 읽기 전압(Vrd)보다 낮은 문턱 전압을 갖는 메모리 셀들이 발생한다면, 프로그램 상태(P1)로 프로그램된 메모리 셀들 중에서 소거 상태(E0)로 읽혀지는 것들이 생길 수 있다. 이러한 문제를 해결하고 데이터의 신뢰성을 유지하기 위하여, 덮어쓰기가 불가능한 메모리 소자에서는 리텐션 대상이 되는 제 1 메모리 영역들에 기록된 데이터를 버퍼 메모리로 읽어 들인 후 제 1 메모리 영역들을 소거할 수 있다(①). 그리고 버퍼 메모리에 저장된 데이터가 소거 상태의 제 2 영역들에 재기입될 수 있다(②).
여기서, 데이터 리텐션 동작(Data retention operation)이 플래시 메모리 장치를 예로 설명되었으나, 본 발명은 여기에 국한되지 않는다. 데이터의 기입 후에, 시간의 경과에 따라 메모리 셀의 저항치나 문턱치가 이동(Drift)하는 제반 메모리 소자들에 적용될 수 있을 것이다. 그리고 데이터 리텐션 동작(Data retention operation)의 신뢰성을 높이기 위하여, 읽혀진 데이터에 대한 에러 검출 및 정정 동작이 추가될 수도 있다.
도 4는 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법에 관한 순서도이다.
도 1 및 도 4를 참조하면, 호스트 장치(200)의 호스트 메모리(220)에 로드된 리텐션 매니저(RM)에 따른 메모리 시스템(100)의 데이터 리텐션 동작 방법은 하기와 같다.
S110 단계에서, 호스트 장치(200)는 스토리지 장치(300)를 제어하여 읽기 데이터 단위(read data unit)의 읽기 동작을 수행할 수 있다. 읽기 데이터 단위(read data unit)는 호스트 장치(200)가 한 번의 읽기 요청을 통해 스토리지에 요청하는 읽기 데이터 (Read Data)의 단위일 수 있다. 예를 들어, 읽기 데이터 단위는 4KB(Kilo Byte)에 해당하는 읽기 데이터일 수 있다. 그리고, 읽기 데이터 단위(read data unit)는 호스트 장치(200) 또는 스토리지 장치(300)의 종류에 따라 달라질 수 있다.
S120 단계에서, 호스트 장치(200)의 리텐션 매니저(RM)는 스토리지 장치(300)에서 수행되는 읽기 데이터 단위(read data unit)의 읽기 동작이 일정 시간 내에 수행되었는지 여부를 판단할 수 있다. 예를 들어 가장 최근의 읽기 동작이 직전의 읽기 동작으로부터 일정 시간 내에 수행된 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 가장 최근의 읽기 동작의 읽기 레이턴시를 저장하지 않고 수순을 종료한다. 위와 같은 구성을 통해 호스트 장치(200)의 리텐션 매니저(RM)가 저장 및 관리하는 데이터의 양을 줄여 메모리 시스템(100)의 오버헤드(Overhead)를 감소시킬 수 있다. 다만, 본 발명의 실시 예에 따른 호스트 장치(200)는 S120 단계를 건너 뛰어 S130 단계를 수행할 수도 있다.
S130 단계에서, 가장 최근의 읽기 동작이 직전 읽기 동작으로부터 일정 시간을 초과하여 수행된 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 스토리지 장치(200)의 읽기 데이터 단위의 읽기 레이턴시를 읽기 레이턴시 테이블(Read Latency Table, RLAT)로 저장할 수 있다. 구체적으로, 읽기 동작의 읽기 레이턴시는 호스트 장치(200)의 EEPROM(Electrically Erasable and Programmable ROM, 미도시)에 저장될 수 있다.
S140 단계에서, 호스트 장치(200)의 리텐션 매니저(RM)는 레이턴시 변화량(Latency change ratio)이 문턱 값(TH_V)을 초과하는지 여부를 판단할 수 있다. 예를 들어, 레이턴시 변화량(Latency change ratio)은 읽기 레이턴시 테이블(RLAT)로 저장된 가장 최근 읽기 동작의 읽기 레이턴시와 직전의 읽기 동작의 읽기 레이턴시의 차이일 수 있다. 만약 레이턴시 변화량(Latency change ratio)이 문턱 값(TH_V) 이하인 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 S150 단계를 수행하지 않고 수순을 종료한다.
또한, 스토리지 장치(300)에서 수행되는 읽기 데이터 단위(read data unit)의 읽기 동작이 제 1 읽기 동작인 경우, 리텐션 매니저(RM)는 S110 단계 내지 S130 단계까지만 수행한 뒤 S14O 단계에서 레이턴시 변화량(Latency change ratio)이 문턱 값(TH_V)을 초과하는지 여부를 판단하지 않고 수순을 종료한다.
S150 단계에서, 레이턴시 변화량(Latency change ratio)이 문턱 값(TH_V)을 초과하는 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 스토리지 장치(300)에 리텐션 문제(Retention Problem)가 발생할 가능성이 높다고 판단할 수 있다. 이어, 호스트 장치(200)는 리텐션 문제(Retention Problem)가 발생할 가능성이 높다고 판단된 스토리지 장치(300)에 데이터 리텐션 동작이 수행되도록 제어할 수 있다. 데이터 리텐션 동작에 대해서는 도 3에서 설명되었으므로, 이에 대한 구체적인 설명은 생략한다.
도 5는 읽기 레이턴시들을 저장 및 관리하는 읽기 레이턴시 테이블(Read Latency Table, RLAT)에 관한 도면이다.
도 1 내지 도 5를 참조하면, 호스트 장치(200)가 스토리지 장치(300)를 제어하여 스토리지 장치(300)에 수행되는 읽기 데이터 단위(read data unit)의 읽기 동작들을 수행할 때, 호스트 장치(200)의 리텐션 매니저(RM)는 읽기 레이턴시 테이블(RLAT)을 저장할 수 있다. 예를 들어, 스토리지 장치(300)의 특정 페이지(예를 들어, 호스트 장치가 읽기를 요청한 페이지)에 대해 읽기 데이터 단위(read data unit)의 읽기 동작들(ROP1~ROP5)이 수행될 때, 리텐션 매니저(RM)는 읽기 동작이 수행된 페이지를 포함한 블록의 레이턴시 테이블에 읽기 레이턴시들를 저장할 수 있다.
예를 들어, 특정 페이지에 대해 읽기 데이터 단위(read data unit)의 읽기 동작들이 수행될 때, 리텐션 매니저(RM)는 읽기 동작들(ROP1~ROP5)의 읽기 레이턴시들(tRD1~tRD5)을 특정 개수만큼 저장하거나 전부 저장할 수 있다.
다른 예로, 읽기 데이터 단위(read data unit)의 읽기 동작들(ROP1~ROP5)이 수행될 때, 리텐션 매니저(RM)는 가장 최근의 읽기 동작의 읽기 레이턴시와 직전의 읽기 동작의 읽기 레이턴시를 저장하고, 나머지 레이턴시들을 소거할 수도 있다.
읽기 데이터 단위(read data unit)의 읽기 동작들(ROP1~ROP5)이 각각 수행될 때, 본 발명의 실시 예에 따른 메모리 시스템(100)은 도 4의 S110 단계 내지 S150 단계를 반복하여 수행할 수 있다.
예시적으로, 호스트 장치(200)는 데이터 획득 목적이 아닌 스토리지 장치(300)의 리텐션 문제(Retention Problem)의 발생 여부를 모니터링하기 위한 모니터링 읽기를 읽기 명령어(CMD_R)를 통해 요청할 수 있다.
본 발명의 권리범위는 도 5에서 설명된 읽기 레이턴시 테이블(RLAT)에 한정되지 않고, 이와 균등한 범위의 다양한 실시 예들을 더 포함할 수 있음은 이해될 수 있을 것이다.
도 6은 리텐션 메니저(RM)가 도 5의 읽기 레이턴시 테이블(RLAT)을 이용하여 도 4의 S140 단계를 수행하는 과정에 대한 도면이다. 예시적으로, 제 1 내지 제 5 읽기 동작들(ROP1~ROP5)이 수행된다고 가정한다.
도 1 내지 도 6을 참조하면, 도 6의 가로축은 읽기 데이터 단위(read data unit)의 제 1 내지 제 5 읽기 동작들(ROP1~ROP5)을 나타낸다. 도 6의 세로축은 읽기 데이터 단위(read data unit)에 대한 제 1 내지 제 5 읽기 동작들(ROP1~ROP5)의 제 1 내지 제 5 레이턴시들(tRD1~tRD5)을 나타낸다.
도 6의 실선으로 표현된 그래프는 제 1 읽기 동작(ROP1)의 제 1 레이턴시(tRD1)와 제 2 읽기 동작(ROP2)의 제 2 레이턴시(tRD2)를 연결한 제 1 선(①), 제 2 읽기 동작(ROP2)의 제 2 레이턴시(Trd2)와 제 3 읽기 동작(ROP3)의 제 3 레이턴시(tRD3)를 연결한 제 2 선(②), 제 3 읽기 동작(ROP3)의 제 3 레이턴시(tRD3)와 제 4 읽기 동작(ROP4)의 제 4 레이턴시(tRD4)를 연결한 제 3 선(③), 제 4 읽기 동작(ROP4)의 제 4 레이턴시(tRD4)와 제 5 읽기 동작(ROP5)의 제 5 레이턴시(tRD5)를 연결한 제 4 선(④)을 포함한다.
즉. 제 1 선 내지 제 4 선들 각각은 동일한 크기의 읽기 데이터 단위에 대해 수행된 읽기 레이턴시들을 연결하므로, 제 1 선 내지 제 4 선들의 기울기는 레이턴시 변화량(Latency change ratio)을 의미할 수 있다.
도 6은 제 1 내지 제 4 레이턴시 변화량들(d1~d4)을 도시한다. 예를 들어, 제 1 레이턴시 변화량은 읽기 데이터 단위의 읽기 동작을 수행하여 읽기 레이턴시 테이블(RLAT)에 저장된 제 2 읽기 레이턴시(tRD2)와 제 1 읽기 레이턴시(tRD1)를 연결한 제 1 선(①)의 기울기(d1)일 수 있다. 제 2 레이턴시 변화량은 읽기 데이터 단위의 읽기 동작을 수행하여 읽기 레이턴시 테이블(RLAT)에 저장된 제 3 읽기 레이턴시(tRD3)와 제 2 읽기 레이턴시(tRD2)를 연결한 제 2 선(②)의 기울기(d2)일 수 있다. 제 3 레이턴시 변화량은 읽기 데이터 단위의 읽기 동작을 수행하여 읽기 레이턴시 테이블(RLAT)에 저장된 제 4 읽기 레이턴시(tRD4)와 제 3 읽기 레이턴시(tRD3)를 연결한 제 3 선(③)의 기울기(d3)일 수 있다. 제 4 레이턴시 변화량은 읽기 데이터 단위의 읽기 동작을 수행하여 읽기 레이턴시 테이블(RLAT)에 저장된 제 5 읽기 레이턴시(tRD5)와 제 4 읽기 레이턴시(tRD4)를 연결한 제 4선(④)의 기울기(d4)일 수 있다.
도 6의 점선으로 표현된 그래프의 기울기는 문턱 값(TH_V)을 의미한다. 문턱 값(TH_V)은 스토리지 장치의 종류 또는 스토리지 장치의 구동 환경에 따라 달라질 수 있다.
도 1, 도 4 및 도 6을 참조하면, 도 4의 S140에서, 스토리지 장치(200)의 리텐션 메니저(RM)는 제 1 내지 제 4 레이턴시 변화량들(d1~d4) 각각이 문턱 값(TH_V)을 초과하는지 여부를 판단할 수 있다.
도 6의 경우, 스토리지 장치(300)에서 수행된 읽기 데이터 단위(read data unit)의 읽기 동작이 제 1 읽기 동작(ROP1)인 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 S110 단계 내지 S130 단계까지만 수행한 뒤 S14O 단계에서 레이턴시 변화량이 문턱 값(TH_V)을 초과하는지 여부를 판단하지 않고 수순을 종료한다.
스토리지 장치(300)에서 수행된 읽기 데이터 단위(read data unit)의 읽기 동작이 제 2 읽기 동작(ROP2)인 경우, 호스트 장치(200)의 리텐션 메니저(RM)는 제 1 선(①)의 기울기(d1)가 문턱 값(TH_V)을 초과하지 않음을 판단한다. 그리고, S14O 단계에 따라 호스트 장치(200)의 리텐션 메니저(RM)는 수순을 종료한다.
스토리지 장치(300)에서 수행된 읽기 데이터 단위(read data unit)의 읽기 동작이 제 3 읽기 동작(ROP3)인 경우, 리텐션 메니저(RM)는 제 2 선(②)의 기울기(d2)가 문턱 값(TH_V)을 초과함을 판단한다. 따라서, 호스트 장치(200)는 도 4의 S150 단계에 따라 스토리지 장치(300)에 데이터 리텐션 명령어(CMD_RE)을 전달할 수 있다.
스토리지 장치(300)에서 수행된 읽기 데이터 단위(read data unit)의 읽기 동작이 제 4 읽기 동작(ROP4)인 경우, 호스트 장치(200)의 리텐션 메니저(RM)는 제 3 선(③)의 기울기(d3)가 문턱 값(TH_V)을 초과하지 않음을 판단한다. 그리고, S14O 단계에 따라 호스트 장치(200)의 리텐션 메니저(RM)는 수순을 종료한다.
예시적으로, 스토리지 장치(300)는 데이터 리텐션 명령(CMD_RE)에 따라 데이터 리텐션 동작(Data retention operation)을 수행할 수 있다. 예를 들어, 스토리지 장치(300)는 저장된 데이터 중에서 리텐션 문제(Retention Problem)가 발생한 데이터가 존재하는지 모니터할 수 있다. 리텐션 문제(Retention Problem)가 발생한 데이터가 검출되면, 스토리지 장치(300)는 검출된 데이터가 저장된 메모리 영역(예를 들어, 제1 메모리 블록, BLK1)으로부터 데이터를 읽고, 읽힌 데이터를 다른 메모리 영역(예를 들어, 제2 메모리 블록, BLK2)에 기입할 수 있다. 제 1 메모리 블록(BLK1)은 소거될 수 있다. 예를 들어, 호스트 장치(200)는 리텐션 문제(Retention Problem)가 발생한 읽기와 연관된 주소를 데이터 리텐션 명령(CMD_RE)과 함께 스토리지 장치(300)로 전송할 수 있다. 스토리지 장치(300)는 리텐션 명령(CMD_RE)과 함께 전송되는 주소에 기반하여, 데이터 리텐션 문제(Retention Problem)를 모니터할 수 있다. 예를 들어, 스토리지 장치(300)는 전송된 주소에 대응하는 메모리 블록에서 리텐션 문제(Retention Problem)를 모니터할 수 있다.
예시적으로, 스토리지 장치(300)는 내부적으로 데이터 리텐션 문제(Retention Problem)를 관리하는 알고리즘을 구비할 수 있다. 스토리지 장치(300)가 내부적으로 데이터 리텐션 문제(Retention Problem)를 관리하는 것에 더하여, 호스트 장치(200)가 추가적으로 데이터 리텐션 문제(Retention Problem)를 관리하면, 스토리지 장치(300)의 데이터의 무결성이 향상될 수 있다.
스토리지 장치(300)에서 수행된 읽기 데이터 단위(read data unit)의 읽기 동작이 제 5 읽기 동작(ROP5)인 경우, 호스트 장치(200)의 리텐션 메니저(RM)는 제 4선(④)의 기울기(d4)가 문턱 값(TH_V)을 초과하지 않음을 판단한다. 그리고, S14O 단계에 따라 호스트 장치(200)의 리텐션 메니저(RM)는 수순을 종료한다.
도 1 내지 도 6에 따를 때, 본 발명의 실시 예에 따른 메모리 시스템(100)은 스토리지 장치(300)의 메모리 셀 어레이(330)에 발생 가능한 리텐션 문제(Retention Problem)를 사전에 방지할 수 있다. 따라서, 본 발명의 실시 예에 따르면, 고온의 동작 환경 또는 비주기적인 사용 환경에서도 향샹된 신뢰성을 갖는 메모리 시스템(100)이 제공될 수 있다.
도 7은 본 발명의 다른 실시 예에 따른 메모리 시스템(100)을 보여주는 블록도이다. 도 7을 참조하면, 본 발명에 따른 메모리 시스템(100)은 호스트 장치(200)와 제 1 및 제 2 스토리지 장치(300a. 300b)를 포함할 수 있다.
호스트 장치(200)는 제 1 스토리지 장치(300a)에 제 1 읽기 명령어(CMD_R) 및 제 1 리텐션 명령어(CMD_RE)를 제공할 수 있다. 호스트 장치(200)는 제 1 읽기 명령어(CMD_R)를 통해 제 1 스토리지 장치(300a)에 읽기 동작이 수행되도록 제어할 수 있다. 그리고, 호스트 장치(200)는 제 1 리텐션 명령어(CMD_RE)를 통해 제 1 스토리지 장치(300a)에 데이터 리텐션 동작(Data retention operation)이 수행되도록 제어할 수 있다.
호스트 장치(200)는 제 2 스토리지 장치(300b)에 제 2 읽기 명령어(CMD’_R) 및 제 2 리텐션 명령어(CMD’_RE)를 제공할 수 있다. 호스트 장치(200)는 제 2 읽기 명령어(CMD’_R)를 통해 제 2 스토리지 장치(300b)에 읽기 동작이 수행되도록 제어할 수 있다. 그리고, 호스트 장치(200)는 제 2 리텐션 명령어(CMD’_RE)를 통해 제 2 스토리지 장치(300b)에 데이터 리텐션 동작(Data retention operation)이 수행되도록 제어할 수 있다.
도 7의 호스트 장치(200)의 리텐션 매니저(RM)는 제 1 및 제 2 스토리지 장치(300a, 300b)로 전달된 읽기 명령어들(CMD_R, CMD’_R)에 대한 읽기 레이턴시들을 제 1 및 제 2 읽기 레이턴시 테이블들(RLAT1, RLAT2)로 저장 및 관리할 수 있다. 호스트 장치(200)의 리텐션 매니저(RM)가 제 1 및 제 2 읽기 레이턴시 테이블들(RLAT1, RLAT2)을 저장 및 관리하는 방법에 관하여는 후술되는 도면들에서 상세하게 설명된다.
도 7의 제 1 스토리지 장치(300a)와 제 2 스토리지 장치(300b)는 동종의 스토리지 장치일 수 있다. 이 경우, 제 1 스토리지 장치(300a)와 제 2 스토리지 장치(300b)는 읽기 데이터 단위(read data unit), 읽기 명령어들(CMD_R, CMD’_R) 및 리텐션 명령어들(CMD_RE, CMD’_RE)은 동일할 수 있다. 또한, 제 1 스토리지 장치(300a)의 제 1 문턱 값(TH_V1)과 제 2 스토리지 장치(300b)의 제 2 문턱 값(TH_V2)은 동일할 수 있다.
도 7의 제 1 스토리지 장치(300a)와 제 2 스토리지 장치(300b)는 이종의 스토리지 장치일 수 있다. 이 경우, 제 1 스토리지 장치(300a)와 제 2 스토리지 장치(300b)는 읽기 데이터 단위(read data unit), 읽기 명령어들(CMD_R, CMD’_R) 및 리텐션 명령어들(CMD_RE, CMD’_RE)은 상이할 수 있다. 또한, 제 1 스토리지 장치(300a)의 제 1 문턱 값(TH_V1)과 제 2 스토리지 장치(300b)의 제 2 문턱 값(TH_V2)은 상이할 수 있다.
간결한 설명을 위해 도8에 표현된 구성요소 중 도 1에 도시된 구성요소와 동일한 구성요소 또는 참조부호를 병기하는 구성 요소에 대한 구체적인 설명은 생략한다.
도 8은 본 발명의 다른 실시 예에 따른 메모리 시스템의 동작 방법에 관한 순서도이다.
도 7 및 도 8을 참조하면, 본 발명의 다른 실시 예에 따른 메모리 시스템(100)은 제 1 및 제 2 스토리지 장치(300a, 300b)를 포함한다고 가정한다. 그리고, 호스트 장치(200)의 호스트 메모리(220)에 로드된 리텐션 매니저(RM)에 따른 메모리 시스템(100)의 데이터 리텐션 동작 방법은 하기와 같다.
S210 단계에서, 호스트 장치(200)는 복수의 스토리지 장치들을 제어하여 읽기 데이터 단위들의 읽기 동작들을 수행할 수 있다. 도 9의 경우 호스트 장치(200)는 제 1 스토리지 장치(300a)를 제어하여 제 1 읽기 데이터 단위들의 읽기 동작을 독립적으로 수행할 수 있다. 또한, 호스트 장치(200)는 제 2 스토리지 장치(300b)를 제어하여 제 2 읽기 데이터 단위들의 읽기 동작을 독립적으로 수행할 수 있다.
읽기 데이터 단위는 호스트 장치(200)의 호스트 레벨에서 읽기 데이터(Read Data)의 크기일 수 있다. 예를 들어, 스토리지 장치(300a, 300b)의 종류가 다른 경우 제 1 읽기 데이터 단위와 제 2 읽기 데이터 단위는 다르게 설정될 수 있다. 반대로, 스토리지 장치(300a, 300b)의 종류가 동일한 경우 제 1 읽기 데이터 단위와 제 2 읽기 데이터 단위는 동일하게 설정될 수 있다.
S221 단계에서, 호스트 장치(200)의 리텐션 매니저(RM)는 제 1 스토리지 장치(300a)에서 수행되는 제 1 읽기 데이터 단위(1st read data unit)의 읽기 동작이 일정 시간 내에 수행되었는지 여부를 판단할 수 있다. 예를 들어 가장 최근의 읽기 동작이 직전의 읽기 동작으로부터 일정 시간 내에 수행된 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 가장 최근의 읽기 동작의 읽기 레이턴시를 저장하지 않고 수순을 종료한다.
S222 단계에서, 호스트 장치(200)는 제 2 스토리지 장치(300b)에서 수행되는 제 2 읽기 데이터 단위(2st read data unit)의 읽기 동작이 일정 시간 내에 수행되었는지 여부를 판단할 수 있다. 예를 들어 가장 최근의 읽기 동작이 직전의 읽기 동작으로부터 일정 시간 내에 수행된 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 가장 최근의 읽기 동작의 읽기 레이턴시를 저장하지 않고 수순을 종료한다.
S221 단계 및 S222 단계에 따라 호스트 장치(200)가 저장 및 관리하는 데이터가 줄어들 수 있다. 이에 따라, 본 발명인 메모리 시스템(100)의 오버헤드(Overhead)를 감소시킬 수 있다.
그리고, S221 단계 및 S222 단계는 호스트 장치(200)의 리텐션 매니저(RM)에 의해 동시에 또는 순차적으로 수행될 수 있다.
S231 단계에서, 제 1 스토리지 장치(300a)에서 수행된 가장 최근의 읽기 동작이 직전 읽기 동작으로부터 일정 시간을 초과하여 수행된 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 스토리지 장치(200)의 제 1 읽기 데이터 단위(1st read data unit)의 읽기 레이턴시를 제 1 읽기 레이턴시 테이블(Read Latency Table1, RLAT1)로 저장할 수 있다. 구체적으로, 읽기 동작의 읽기 레이턴시는 호스트 장치(200)의 EEPROM(Electrically Erasable and Programmable ROM, 미도시)에 저장될 수 있다.
S232 단계에서, 제 2 스토리지 장치(300b)에서 수행된 가장 최근의 읽기 동작이 직전 읽기 동작으로부터 일정 시간을 초과하여 수행된 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 스토리지 장치(200)의 제 2 읽기 데이터 단위(2st read data unit)의 읽기 레이턴시를 제 2 읽기 레이턴시 테이블(Read Latency Table2, RLAT2)로 저장할 수 있다. 구체적으로, 읽기 동작의 읽기 레이턴시는 호스트 장치(200)의 EEPROM(Electrically Erasable and Programmable ROM, 미도시)에 저장될 수 있다.
S231 단계 및 S232 단계는 호스트 장치(200)의 리텐션 매니저(RM)에 의해 동시에 수행될 수도 있고, 순차적으로 수행될 수 도 있다.
S241 단계에서, 호스트 장치(200)의 리텐션 매니저(RM)는 제 1 스토리지 장치(300a)의 레이턴시 변화량(Latency change ratio)이 제 1 문턱 값(TH_V1)을 초과하는지 여부를 판단할 수 있다. 예를 들어, 레이턴시 변화량(Latency change ratio)은 제 1 읽기 레이턴시 테이블(RLAT1)로 저장된 가장 최근 읽기 동작의 읽기 레이턴시와 직전의 읽기 동작의 읽기 레이턴시의 차이일 수 있다. 만약 레이턴시 변화량(Latency change ratio)이 제 1 문턱 값(TH_V1) 이하인 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 S250 단계를 수행하지 않고 수순을 종료한다.
또한, 제 1 스토리지 장치(300a)에서 수행되는 제 1 읽기 데이터 단위(1st read data unit)의 읽기 동작이 제 1 읽기 동작인 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 레이턴시 변화량(Latency change ratio)이 제 1 문턱 값(TH_V1)을 초과하는지 여부를 판단하지 않고 수순을 종료한다.
S242 단계에서, 호스트 장치(200)의 리텐션 매니저(RM)는 제 2 스토리지 장치(300b)의 레이턴시 변화량(Latency change ratio)이 제 2 문턱 값(TH_V2)을 초과하는지 여부를 판단할 수 있다. 예를 들어, 레이턴시 변화량(Latency change ratio)은 제 2 읽기 레이턴시 테이블(RLAT2)로 저장된 가장 최근 읽기 동작의 읽기 레이턴시와 직전의 읽기 동작의 읽기 레이턴시의 차이일 수 있다. 만약 레이턴시 변화량(Latency change ratio)이 제 2 문턱 값(TH_V2) 이하인 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 S250 단계를 수행하지 않고 수순을 종료한다.
또한, 제 2 스토리지 장치(300b)에서 수행되는 제 2 읽기 데이터 단위(2st read data unit)의 읽기 동작이 제 1 읽기 동작인 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 레이턴시 변화량(Latency change ratio)이 제 2 문턱 값(TH_V2)을 초과하는지 여부를 판단하지 않고 수순을 종료한다.
S241 단계 및 S242 단계는 호스트 장치(200)에 의해 동시에 수행될 수도 있고, 순차적으로 수행될 수 도 있다.
S250 단계에서, 복수의 스토리지 장치들 중에서 적어도 하나의 스토리지 장치의 레이턴시 변화량(Latency change ratio)이 문턱 값을 초과하는 경우, 호스트 장치(200)는 적어도 하나의 스토리지 장치(120)를 리텐션 문제(Retention Problem)가 발생할 가능성이 높은 스토리지 장치로 판단할 수 있다.
예시적으로, 도 7의 경우, 제 1 내지 제 2 스토리지 장치들(300a, 300b) 중에서 적어도 하나의 스토리지 장치의 레이턴시 변화량(Latency change ratio)이 문턱 값을 초과하는 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 적어도 하나의 스토리지 장치를 리텐션 문제(Retention Problem)가 발생할 가능성이 높은 스토리지 장치로 판단한다. 이어, 호스트 장치(200)는 리텐션 문제(Retention Problem)가 발생할 가능성이 높다고 판단된 적어도 하나의 스토리지 장치에 데이터 리텐션 동작을 수행하도록 제어할 수 있다. 데이터 리텐션 동작(Data retention operation)에 대해서는 도 3에서 설명되었으므로, 이에 대한 구체적인 설명은 생략한다.
본 발명의 다른 실시 예에 따른 메모리 시스템(100)은 제 1 및 제 2 스토리지 장치(300a, 300b)를 포함한다고 가정하였으나, 3개 이상의 스토리지 장치들을 포함하는 메모리 장치의 경우에도 본 발명이 적용될 수 있음은 이해될 것이다.
도 9는 본 발명의 다른 실시 예에 따를 때, 읽기 레이턴시들을 저장 및 관리하는 읽기 레이턴시 테이블(RLAT1, RLAT2)에 관한 도면이다.
도 7 내지 도 9를 참조하면, 호스트 장치(200)는 제 1 및 제 2 스토리지 장치들(300a, 300b)을 각각 제어하여 제 1 및 제 2 스토리지 장치들(300a, 300b)에 독립적으로 수행되는 제 1 및 제 2 읽기 데이터 단위(1st read data unit, 2st read data unit)의 읽기 동작들을 수행할 수 있다.
예를 들어, 호스트 장치(200)의 리텐션 매니저(RM)는 제 1 스토리지 장치(300a)의 읽기 레이턴시들을 제 1 레이턴시 테이블(RLAT1)로 저장할 수 있다. 그리고, 호스트 장치(200)의 리텐션 매니저(RM)는 제 2 스토리지 장치(300b)의 읽기 동작들의 읽기 레이턴시들을 제 2 레이턴시 테이블(RLAT2)로 저장할 수 있다.
호스트 장치(200)의 리텐션 매니저(RM)는 위의 제 1 레이턴시 테이블(RLAT1) 및 제 2 레이턴시 테이블(RLAT2)에 저장된 읽기 레이턴시들을 개별적으로 저장 및 관리할 수 있다.
예시적으로, 호스트 장치(200)는 데이터 획득 목적이 아닌 복수의 스토리지 장치들(300a, 300b)의 리텐션 문제(Retention Problem)의 발생 여부를 모니터링하기 위한 모니터링 읽기를 읽기 명령어(CMD_R)를 통해 요청할 수 있다.
호스트 장치(200)의 리텐션 매니저(RM)가 제 1 내지 제 2 레이턴시 테이블(RLAT1, RLAT2)에 저장된 읽기 레이턴시들을 개별적으로 저장 및 관리하는 방법에 관하여는 도 5에서 전술하였는바 이에 관한 설명을 생략한다.
또한, 본 발명의 권리범위는 도 9에서 설명된 제 1 및 제 2 읽기 레이턴시 테이블들(RLAT1, RLAT2)에 한정되지 않고, 이와 균등한 범위의 다양한 실시 예들을 더 포함할 수 있음은 이해될 수 있을 것이다.
도 10는 리텐션 메니저(RM)가 도 9의 제 1 및 제 2 읽기 레이턴시 테이블(RLAT1, RLAT2)를 이용하여 도 8의 S241 단계 및 S242 단계를 수행하는 과정에 대한 도면이다.
도 7 내지 도 10을 참조하면, 제 1 그래프(G1)의 가로축은 제 1 스토리지 장치(300a)에서 수행되는 제 1 내지 제 5 읽기 동작들(ROP11~ROP15)을 나타낸다. 제 1 그래프(G1)의 세로축은 제 1 스토리지 장치(300a)의 제 1 읽기 데이터 단위(1st read data unit)의 제 1 내지 제 5 읽기 동작들(ROP11~ROP15)에 대응된 제 1 내지 제 5 레이턴시들(tRD11~tRD15)을 나타낸다.
도 10의 실선으로 표현된 그래프는 제 1 스토리지 장치(300a)의 제 1 읽기 동작(ROP11)의 제 1 레이턴시(tRD11)와 제 2 읽기 동작(ROP12)의 제 2 레이턴시(tRD12)를 연결한 제 1 선(①), 제 1 스토리지 장치(300a)의 제 2 읽기 동작(ROP12)의 제 2 레이턴시(tRD12)와 제 3 읽기 동작(ROP13)의 제 3 레이턴시(tRD13)를 연결한 제 2 선(②), 제 1 스토리지 장치(300a)의 제 3 읽기 동작(ROP13)의 제 3 레이턴시(tRD13)와 제 4 읽기 동작(ROP14)의 제 4 레이턴시(tRD14)를 연결한 제 3 선(③), 제 1 스토리지 장치(300a)의 제 4 읽기 동작(ROP14)의 제 4 레이턴시(tRD14)와 제 5 읽기 동작(ROP15)의 제 5 레이턴시(tRD15)를 연결한 제 4 선(④)을 포함한다.
즉. 제 1 스토리지 장치(300a)의 제 1 선 내지 제 4 선들(①~④) 각각은 동일한 크기의 읽기 데이터 단위에 대해 수행된 읽기 레이턴시들을 연결하므로, 제 1 선 내지 제 4 선들(①~④) 각각의 기울기는 레이턴시 변화량(Latency change ratio)을 의미할 수 있다.
예시적으로, 도 10은 제 1 스토리지 장치(300a)의 제 1 내지 제 4 레이턴시 변화량들(d11~d14)을 도시한다. 예를 들어, 제 1 레이턴시 변화량(d11)은 제 1 읽기 데이터 단위의 읽기 동작을 수행하여 제 1 읽기 레이턴시 테이블(RLAT1)에 저장된 제 2 읽기 레이턴시(tRD12)와 제 1 읽기 레이턴시(tRD11)를 연결한 제 1 선(①)의 기울기일 수 있다. 제 2 레이턴시 변화량(d12)은 제 1 읽기 데이터 단위의 읽기 동작을 수행하여 제 1 읽기 레이턴시 테이블(RLAT1)에 저장된 제 3 읽기 레이턴시(tRD13)와 제 2 읽기 레이턴시(tRD12)를 연결한 제 2 선(②)의 기울기일 수 있다. 제 3 레이턴시 변화량(d13)은 제 1 읽기 데이터 단위의 읽기 동작을 수행하여 제 1 읽기 레이턴시 테이블(RLAT1)에 저장된 제 4 읽기 레이턴시(tRD14)와 제 3 읽기 레이턴시(tRD13)를 연결한 제 3 선(③)의 기울기일 수 있다. 제 4 레이턴시 변화량(d14)은 제 1 읽기 데이터 단위의 읽기 동작을 수행하여 제 1 읽기 레이턴시 테이블(RLAT1)에 저장된 제 5 읽기 레이턴시(tRD15)와 제 4 읽기 레이턴시(tRD14)를 연결한 제 4선(④)의 기울기일 수 있다.
도 10의 점선으로 표현된 그래프의 기울기는 제 1 문턱 값(TH_V1)을 의미한다. 제 1 문턱 값(TH_V1)은 스토리지 장치의 종류 또는 스토리지 장치의 구동 환경에 따라 달라질 수 있다.
도 7 내지 도 10을 참조하면, 도 8의 S241에서, 호스트 장치(200)의 리텐션 메니저(RM)는 제 1 스토리지 장치(300a)의 제 1 내지 제 4 레이턴시 변화량들(d11~d14)이 제 1 문턱 값(TH_V1)을 초과하는지 여부를 각각 판단할 수 있다.
도 10의 경우, 제 1 스토리지 장치(300a)에서 수행된 제 1 읽기 데이터 단위(1st read data unit)의 읽기 동작이 제 1 읽기 동작(ROP11)인 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 S241 단계에서 레이턴시 변화량(Latency change ratio)이 제 1 문턱 값(TH_V1)을 초과하는지 여부를 판단하지 않고 수순을 종료한다.
제 1 스토리지 장치(300a)에서 수행된 제 1 읽기 데이터 단위(1st read data unit)의 읽기 동작이 제 2 읽기 동작(ROP12)인 경우, 리텐션 메니저(RM)는, S241 단계에서, 제 1 선(①)의 기울기(d11)가 제 1 문턱 값(TH_V1)을 초과하지 않음을 판단한다. 그리고, 도 8의 S241 단계에 따라 호스트 장치(200)의 리텐션 메니저(RM)는 수순을 종료한다.
제 1 스토리지 장치(300a)에서 수행된 제 1 읽기 데이터 단위(1st read data unit)의 읽기 동작이 제 3 읽기 동작(ROP13)인 경우, 호스트 장치(200)의 리텐션 메니저(RM)는, S241 단계에서, 제 2 선(②)의 기울기(d12)가 제 1 문턱 값(TH_V1)을 초과함을 판단한다. 따라서, 호스트 장치(200)는 도 8의 S250 단계에 따라 스토리지 장치(300)에 데이터 리텐션 명령어(CMD_RE)을 전달할 수 있다. 제 1 스토리지 장치(300a)에서 수행된 제 1 읽기 데이터 단위(1st read data unit)의 읽기 동작이 제 4 읽기 동작(ROP14)인 경우, 호스트 장치(200)의 리텐션 메니저(RM)는, S241 단계에서, 제 3 선(③)의 기울기(d13)가 제 1 문턱 값(TH_V1)을 초과하지 않음을 판단한다. 그리고, 도 8의 S241 단계에 따라 호스트 장치(200)의 리텐션 메니저(RM)는 수순을 종료한다.
제 1 스토리지 장치(300a)에서 수행된 제 1 읽기 데이터 단위(1st read data unit)의 읽기 동작이 제 5 읽기 동작(ROP15)인 경우, 호스트 장치(200)의 리텐션 메니저(RM)는 제 4선(④)의 기울기(d14)가 제 1 문턱 값(TH_V1)을 초과하지 않음을 판단한다. 그리고, 도 8의 S241 단계에 따라 호스트 장치(200)의 리텐션 메니저(RM)는 수순을 종료한다.
마찬가지로, 제 2 그래프(G2)의 가로축은 제 2 스토리지 장치(300b)에서 수행되는 제 1 내지 제 5 읽기 동작들(ROP22~ROP25)을 나타낸다. 제 2 그래프(G2)의 세로축은 제 2 스토리지 장치(300b)의 제 2 읽기 데이터 단위(2st read data unit)에 대응된 제 1 내지 제 5 레이턴시들(tRD21~tRD25)을 나타낸다.
도 10의 실선으로 표현된 그래프는 제 2 스토리지 장치(300b)의 제 1 읽기 동작(ROP21)의 제 1 레이턴시(tRD21)와 제 2 읽기 동작(ROP22)의 제 2 레이턴시(tRD22)를 연결한 제 1 선(①), 제 2 스토리지 장치(300b)의 제 2 읽기 동작(ROP22)의 제 2 레이턴시(tRD22)와 제 3 읽기 동작(ROP23)의 제 3 레이턴시(tRD23)를 연결한 제 2 선(②), 제 2 스토리지 장치(300b)의 제 3 읽기 동작(ROP23)의 제 3 레이턴시(tRD23)와 제 4 읽기 동작(ROP24)의 제 4 레이턴시(tRD24)를 연결한 제 3 선(③), 제 2 스토리지 장치(300b)의 제 4 읽기 동작(ROP24)의 제 4 레이턴시(tRD24)와 제 5 읽기 동작(ROP25)의 제 5 레이턴시(tRD25)를 연결한 제 4 선(④)을 포함한다.
즉. 제 2 스토리지 장치(300b)의 제 1 선 내지 제 4 선들(①~④) 각각은 동일한 크기의 읽기 데이터 단위에 대해 수행된 읽기 레이턴시들을 연결하므로, 제 1 선 내지 제 4 선들(①~④) 각각의 기울기는 레이턴시 변화량(Latency change ratio)을 의미할 수 있다.
예시적으로, 도 10은 제 2 스토리지 장치(300b)의 제 1 내지 제 4 레이턴시 변화량들(d21~d24)을 도시한다. 예를 들어, 제 1 레이턴시 변화량(d21)은 제 2 읽기 데이터 단위의 읽기 동작을 수행하여 제 2 읽기 레이턴시 테이블(RLAT2)에 저장된 제 2 읽기 레이턴시(tRD22)와 제 1 읽기 레이턴시(tRD21)를 연결한 제 1 선(①)의 기울기일 수 있다. 제 2 레이턴시 변화량(d22)은 제 2 읽기 데이터 단위의 읽기 동작을 수행하여 제 2 읽기 레이턴시 테이블(RLAT2)에 저장된 제 3 읽기 레이턴시(tRD23)와 제 2 읽기 레이턴시(tRD22)를 연결한 제 2 선(②)의 기울기일 수 있다. 제 3 레이턴시 변화량(d23)은 제 2 읽기 데이터 단위의 읽기 동작을 수행하여 제 2 읽기 레이턴시 테이블(RLAT2)에 저장된 제 4 읽기 레이턴시(tRD24)와 제 3 읽기 레이턴시(tRD23)를 연결한 제 3 선(③)의 기울기일 수 있다. 제 4 레이턴시 변화량(d24)은 제 2 읽기 데이터 단위의 읽기 동작을 수행하여 제 2 읽기 레이턴시 테이블(RLAT2)에 저장된 제 5 읽기 레이턴시(tRD25)와 제 4 읽기 레이턴시(tRD24)를 연결한 제 4선(④)의 기울기일 수 있다.
도 10의 점선으로 표현된 그래프의 기울기는 제 2 문턱 값(TH_V2)을 의미한다. 제 2 문턱 값(TH_V2)은 스토리지 장치의 종류 또는 스토리지 장치의 구동 환경에 따라 달라질 수 있다.
도 7 내지 도 10을 참조하면, 도 8의 S242에서, 호스트 장치(200)의 리텐션 메니저(RM)는 제 2 스토리지 장치(300b)의 제 1 내지 제 4 레이턴시 변화량들(d21~d24)이 제 2 문턱 값(TH_V2)을 초과하는지 여부를 각각 판단할 수 있다.
도 10의 경우, 제 2 스토리지 장치(300b)에서 수행된 제 2 읽기 데이터 단위(2st read data unit)의 읽기 동작이 제 1 읽기 동작(ROP21)인 경우, 호스트 장치(200)의 리텐션 매니저(RM)는 S242 단계에서 레이턴시 변화량이 제 2 문턱 값(TH_V2)을 초과하는지 여부를 판단하지 않고 수순을 종료한다.
제 2 스토리지 장치(300b)에서 수행된 제 2 읽기 데이터 단위(2st read data unit)의 읽기 동작이 제 2 읽기 동작(ROP22)인 경우, 호스트 장치(200)의 리텐션 메니저(RM)는, S242 단계에서, 제 1 선(①)의 기울기(d21)가 제 2 문턱 값(TH_V2)을 초과하지 않음을 판단한다. 그리고, 도 8의 S242 단계에 따라 호스트 장치(200)의 리텐션 메니저(RM)는 수순을 종료한다.
제 2 스토리지 장치(300b)에서 수행된 제 2 읽기 데이터 단위(2st read data unit)의 읽기 동작이 제 3 읽기 동작(ROP23)인 경우, 호스트 장치(200)의 리텐션 메니저(RM)는, S242 단계에서, 제 2 선(②)의 기울기(d22)가 제 2 문턱 값(TH_V2)을 초과하지 않음을 판단한다. 그리고, 도 8의 S242 단계에 따라 호스트 장치(200)의 리텐션 메니저(RM)는 수순을 종료한다.
제 2 스토리지 장치(300b)에서 수행된 제 2 읽기 데이터 단위(1st read data unit)의 읽기 동작이 제 4 읽기 동작(ROP24)인 경우, 호스트 장치(200)의 리텐션 메니저(RM)는, S242 단계에서, 제 3 선(③)의 기울기(d23)가 제 2 문턱 값(TH_V2)을 초과하지 않음을 판단한다. 그리고, 도 8의 S242 단계에 따라 호스트 장치(200)의 리텐션 메니저(RM)는 수순을 종료한다.
제 2 스토리지 장치(300b)에서 수행된 제 2 읽기 데이터 단위(2st read data unit)의 읽기 동작이 제 5 읽기 동작(ROP25)인 경우, 호스트 장치(200)의 리텐션 메니저(RM)는 제 4선(④)의 기울기(d24)가 제 1 문턱 값(TH_V2)을 초과하지 않음을 판단한다. 그리고, 도 8의 S242 단계에 따라 호스트 장치(200)의 리텐션 메니저(RM)는 수순을 종료한다.
따라서, 도 12의 경우, 제 1 내지 제 2 스토리지 장치들(300a, 300b) 중에서 제 1 스토리지 장치(300a)의 레이턴시 변화량이 제 1 문턱 값(TH_V1)을 초과하기 때문에, 호스트 장치(200)의 리텐션 매니저(RM)는 S250 단계에 따라 제 1 스토리지 장치(300a)를 리텐션 문제(Retention Problem)가 발생할 가능성이 높다고 판단할 수 있다.
이어, 호스트 장치(200)는 리텐션 문제(Retention Problem)가 발생할 가능성이 높다고 판단된 제 1 스토리지 장치(300a)에 데이터 리텐션 동작이 수행되도록 제어할 수 있다.
도 11은 본 발명의 실시 예에 따른 메모리 블록(BLKa)을 보여주는 회로도이다.
도 1, 도 7 및 도 11을 참조하면, 메모리 블록(BLKa)은 복수의 셀 스트링들(CS11~CS21, CS12~CS22)을 포함한다. 복수의 셀 스트링들(CS11~CS21, CS12~CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배열되어, 행들 및 열들을 형성할 수 있다.
예를 들어, 행 방향(row direction)을 따라 배열된 셀 스트링들(CS11, CS12)은 제1 행을 형성하고, 행 방향(row direction)을 따라 배열된 셀 스트링들(CS21, CS22)은 제2 행을 형성할 수 있다. 열 방향(column direction)을 따라 배열된 셀 스트링들(CS11, CS21)은 제1 열을 형성하고, 열 방향(column direction)을 따라 배열된 셀 스트링들(CS12, CS22)은 제2 열을 형성할 수 있다.
각 셀 스트링은 복수의 셀 트랜지스터들을 포함할 수 있다. 복수의 셀 트랜지스터들은 접지 선택 트랜지스터들(GST), 메모리 셀들(MC1~MC6), 그리고 스트링 선택 트랜지스터들(SSTa, SSTb)을 포함한다. 각 셀 스트링의 접지 선택 트랜지스터들(GST), 메모리 셀들(MC1~MC6), 그리고 스트링 선택 트랜지스터들(SSTa, SSTb)은 셀 스트링들(CS11~CS21, CS12~CS22)이 행들 및 열들을 따라 배열되는 평면(예를 들어, 메모리 블록(BLKa)의 기판 상의 평면)과 수직한 높이 방향으로 적층될 수 있다.
복수의 셀 트랜지스터들은 절연막에 포획된 전하량에 따라 가변하는 문턱 전압들을 갖는 전하 포획형(charge trap type) 트랜지스터들일 수 있다.
최하단의 접지 선택 트랜지스터들(GST)의 소스들은 공통 소스 라인(CSL)에 공통으로 연결될 수 있다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 접지 선택 트랜지스터들(GST)의 제어 게이트들은 접지 선택 라인들(GSL1, GSL2)에 각각 연결될 수 있다. 예시적으로, 동일한 행의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결되고, 서로 다른 행의 접지 선택 트랜지스터들은 서로 다른 접지 선택 라인들에 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 접지 선택 트랜지스터들(GST)은 제1 접지 선택 라인(GSL1)에 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 접지 선택 트랜지스터들(GST)은 제2 접지 선택 라인(GSL2)에 연결될 수 있다.
기판(또는 접지 선택 트랜지스터들(GST))으로부터 동일한 높이(또는 순서)에 위치한 메모리 셀들의 제어 게이트들은 하나의 워드 라인에 공통으로 연결되고, 서로 다른 높이(또는 순서)에 위치한 메모리 셀들의 제어 게이트들은 서로 다른 워드 라인들(WL1~WL6)에 각각 연결될 수 있다. 예를 들어, 메모리 셀들(MC1)은 워드 라인(WL1)에 공통으로 연결된다. 메모리 셀들(MC2)은 워드 라인(WL2)에 공통으로 연결된다. 메모리 셀들(MC3)은 워드 라인(WL3)에 공통으로 연결된다. 메모리 셀들(MC4)은 워드 라인(WL4)에 공통으로 연결된다. 메모리 셀들(MC5)은 워드 라인(WL5)에 공통으로 연결된다. 메모리 셀들(MC6)은 워드 라인(WL6)에 공통으로 연결된다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 동일한 높이(또는 순서)의 제1 스트링 선택 트랜지스터들(SSTa)에서, 서로 다른 행의 제1 스트링 선택 트랜지스터들(SSTa)의 제어 게이트들은 서로 다른 스트링 선택 라인들(SSL1a~SSL2a)에 각각 연결된다. 예를 들어, 셀 스트링들(CS11, CS12)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)에 공통으로 연결된다. 셀 스트링들(CS21, CS22)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL2a)에 공통으로 연결된다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 동일한 높이(또는 순서)의 제2 스트링 선택 트랜지스터들(SSTb)에서, 서로 다른 행의 제2 스트링 선택 트랜지스터들(SSTb)의 제어 게이트들은 서로 다른 스트링 선택 라인들(SSL1b~SSL2b)에 각각 연결된다. 예를 들어, 셀 스트링들(CS11, CS12)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)에 공통으로 연결된다. 셀 스트링들(CS21, CS22)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)에 공통으로 연결된다.
즉, 서로 다른 행의 셀 스트링들은 서로 다른 스트링 선택 라인들에 연결된다. 동일한 행의 셀 스트링들의 동일한 높이(또는 순서)의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인에 연결된다. 동일한 행의 셀 스트링들의 서로 다른 높이(또는 순서)의 스트링 선택 트랜지스터들은 서로 다른 스트링 선택 라인들에 연결된다.
예시적으로, 동일한 행의 셀 스트링들의 스트링 선택 트랜지스터들은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 스트링 선택 트랜지스터들(SSTa, SSTb)은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. 제2 행의 샐 스트링들(CS21, CS22)의 스트링 선택 트랜지스터들(SSTa, SSTb)은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 열들은 서로 다른 비트 라인들(BL1, BL2)에 각각 연결된다. 예를 들어, 제1 열의 셀 스트링들(CS11~CS21)의 스트링 선택 트랜지스터들(SSTb)은 비트 라인(BL1)에 공통으로 연결된다. 제2 열의 셀 스트링들(CS12~CS22)의 스트링 선택 트랜지스터들(SST)은 비트 라인(BL2)에 공통으로 연결된다.
셀 스트링들(CS11, CS12)은 제1 플레인을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 제2 플레인을 형성할 수 있다.
메모리 블록(BLKa)에서, 각 플레인의 각 높이의 메모리 셀들은 물리 페이지를 형성할 수 있다. 물리 페이지는 메모리 셀들(MC1~MC6)의 쓰기 및 읽기의 단위일 수 있다. 예를 들어, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BLKa)의 하나의 플레인이 선택될 수 있다. 스트링 선택 라인들(SSL1a, SSL1b)이 턴-온 전압이 공급되고 스트링 선택 라인들(SSL2a, SSL2b)에 턴-오프 전압이 공급될 때, 제1 플레인의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결된다. 즉, 제1 플레인이 선택된다. 스트링 선택 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제2 플레인의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, BL2)에 연결된다. 즉, 제2 플레인이 선택된다. 선택된 플레인에서, 워드 라인들(WL1~WL6)에 의해 메모리 셀들(MC)의 하나의 행이 선택될 수 있다. 선택된 행에서, 제2 워드 라인(WL2)에 선택 전압이 인가되고, 나머지 워드 라인들(WL1, WL3~WL6)에 비선택 전압이 인가될 수 있다. 즉, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b) 및 워드 라인들(WL1~WL6)의 전압들을 조절함으로써, 제2 플레인의 제2 워드 라인(WL2)에 대응하는 물리 페이지가 선택될 수 있다. 선택된 물리 페이지의 메모리 셀들(MC2)에서, 쓰기 또는 읽기가 수행될 수 있다.
메모리 블록(BLKa)에서, 메모리 셀들(MC1~MC6)의 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 메모리 블록(BLKa)의 모든 메모리 셀들(MC)이 하나의 소거 요청(예를 들어, 외부의 메모리 컨트롤러로부터의 소거 요청)에 따라 동시에 소거될 수 있다. 서브 블록의 단위로 수행될 때, 메모리 블록(BLKa)의 메모리 셀들(MC1~MC6) 중 일부는 하나의 소거 요청(예를 들어, 외부의 메모리 컨트롤러로부터의 소거 요청)에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들(MC)에 연결된 워드 라인에 저전압(예를 들어, 접지 전압 또는 접지 전압과 유사한 레벨을 갖는 저전압)이 공급되고, 소거 금지된 메모리 셀들(MC)에 연결된 워드 라인은 플로팅될 수 있다.
예시적으로, 메모리 블록(BLKa)은 블록 어드레스에 의해 식별되는 물리적 저장 공간을 포함할 수 있다. 워드 라인들(WL1~WL6) 각각은 행 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다. 비트 라인들(BL1, BL2) 각각은 열 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다. 서로 다른 행의 스트링 선택 라인들(SSL1a 및 SSL2a, 또는 SSL1b 및 SSL2b) 각각은 또는 서로 다른 행의 접지 선택 라인들(GSL1 및 GSL2)은 플레인 어드레스에 의해 식별되는 물리적 저장 공간에 대응할 수 있다.
도 11에 도시된 메모리 블록(BLKa)은 예시적인 것이다. 본 발명의 기술적 사상은 도 11에 도시된 메모리 블록(BLKa)에 한정되지 않는다. 예를 들어, 셀 스트링들의 행들의 수는 증가 또는 감소될 수 있다. 셀 스트링들의 행들의 수가 변경됨에 따라, 셀 스트링들의 행들에 연결되는 스트링 선택 라인들 또는 접지 선택 라인의 수, 그리고 하나의 비트 라인에 연결되는 셀 스트링들의 수 또한 변경될 수 있다.
셀 스트링들의 열들의 수는 증가 또는 감소될 수 있다. 셀 스트링들의 열들의 수가 변경됨에 따라, 셀 스트링들의 열들에 연결되는 비트 라인들의 수, 그리고 하나의 스트링 선택 라인에 연결되는 셀 스트링들의 수 또한 변경될 수 있다.
셀 스트링들의 높이는 증가 또는 감소될 수 있다. 예를 들어, 셀 스트링들 각각에 적층되는 접지 선택 트랜지스터들, 메모리 셀들 또는 스트링 선택 트랜지스터들의 수는 증가 또는 감소될 수 있다.
예시적으로, 하나의 물리 페이지에 속한 메모리 셀들(MC)은 적어도 세 개의 논리 페이지들에 대응할 수 있다. 예를 들어, 하나의 메모리 셀(MC)에 k 개(k는 2보다 큰 양의 정수)의 비트들이 프로그램될 수 있다. 하나의 물리 페이지에 속한 메모리 셀들(MC)에서, 각 메모리 셀(MC)에 프로그램되는 k 개의 비트들은 각각 k 개의 논리 페이지들을 형성할 수 있다.
예를 들어, 하나의 물리 페이지는 블록 어드레스, 행 어드레스, 열 어드레스 및 플레인 어드레스에 의해 식별되는 물리적 저장 공간을 포함한다. 하나의 물리 페이지는 둘 이상의 논리 페이지들을 포함할 수 있다. 논리 페이지들 각각은 물리 페이지의 어드레스에 더하여 논리 페이지들을 식별하는 추가 어드레스(또는 오프셋)에 의해 식별되는 논리적 저장 공간을 포함할 수 있다.
본 발명의 기술적 사상에 따른 일 예로서, 3차원 메모리 어레이가 제공된다. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 획일적으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 획일적으로 형성되는 것은, 3차원 어레이의 각 레벨의 레이어들이 3차원 어레이의 하위 레벨의 레이어들 위에 직접 증착됨을 의미한다.
본 발명의 기술적 사상에 따른 일 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 포획 레이어를 포함한다. 각 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 더 포함한다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 획일적으로 형성된다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에서 워드 라인들 또는 비트 라인들이 공유되는 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.
도 7 내지 도 11에 따른 메모리 시스템(100)은 호스트 레벨에서 복수의 스토리지 장치들을 개별적으로 관리할 수 있을 뿐만 아니라 복수의 스토리지 장치들에 발생 가능한 리텐션 문제(Retention Problem)를 사전에 방지할 수 있다. 또한, 고온의 동작 환경 또는 비주기적인 사용 환경에서도 향샹된 신뢰성을 갖는 복수의 스토리지 장치를 포함한 메모리 시스템(100)이 제공될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로, 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 메모리 시스템 200: 호스트 장치
210: 프로세서 220: 호스트 메모리
230: 호스트 인터페이스 300: 스토리지 장치
310: 스토리지 컨트롤러 311: 중앙처리장치
312: 호스트 인터페이스 313: 버퍼 매니저
314: 플래시 인터페이스 320: 버퍼 메모리
330: 불휘발성 메모리 장치 331: 메모리 셀 어레이

Claims (10)

  1. 호스트 장치가 스토리지 장치를 제어하는 방법에 있어서:
    상기 호스트 장치가 상기 스토리지 장치를 제어하여 선택된 메모리 영역들에 읽기 데이터 단위의 읽기 동작을 수행하는 단계;
    상기 호스트 장치가 상기 스토리지 장치에서 수행된 상기 읽기 동작에 대응된 읽기 레이턴시를 읽기 레이턴시 테이블로 저장하는 단계;
    상기 읽기 레이턴시 테이블로 저장된 상기 읽기 레이턴시를 기반으로 레이턴시 변화량이 문턱 값을 초과하는지 여부를 판단하는 단계; 및
    상기 레이턴시 변화량이 상기 문턱 값을 초과하는 경우, 상기 호스트 장치가 리텐션 커맨드를 통해 상기 스토리지 장치에 데이터 리텐션 동작(Data retention operation)을 요청하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 읽기 레이턴시는 상기 호스트 장치의 읽기 요청에 따라 읽기 데이터 단위의 읽기 데이터가 상기 스토리지 장치로부터 읽히고 상기 호스트 장치에 도달하는 시간인 방법.
  3. 제 1 항에 있어서,
    상기 레이턴시 변화량은 가장 최근 수행된 읽기 동작에 대응된 읽기 레이턴시와 현재에 수행된 읽기 동작에 대응된 읽기 레이턴시의 차이인 방법.
  4. 제 1 항에 있어서,
    상기 리텐션 커맨드에 따른 상기 리텐션 동작은 상기 스토리지 장치가 상기 선택된 메모리 영역들에 기록된 데이터를 읽어 버퍼 메모리에 저장하고, 상기 상기 버퍼 메모리에 저장된 데이터를 제 2 메모리 영역들에 재기입하는 동작을 포함하는 방법.
  5. 제 1 항에 있어서,
    현재 수행된 읽기 동작이 가장 최근에 읽기 동작이 수행된 후 일정 시간 이내에 수행된 경우, 상기 현재 수행된 읽기 동작에 대응된 읽기 레이턴시를 무시하는 단계를 더 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 호스트 장치가 제 2 스토리지 장치를 제어하여 선택된 제 2 메모리 영역들에 제 2 읽기 데이터 단위의 제 2 읽기 동작을 수행하는 단계;
    상기 호스트 장치가 상기 제 2 스토리지 장치에서 수행된 상기 제 2 읽기 동작에 대응된 제 2 읽기 레이턴시를 제 2 읽기 레이턴시 테이블로 각각 저장하는 단계;
    상기 제 2 읽기 레이턴시 테이블에 저장된 상기 제 2 읽기 레이턴시를 기반으로 제 2 레이턴시 변화량이 제 2 문턱값을 초과하는지 여부를 판단하는 단계; 및
    상기 제 2 읽기 레이턴시 테이블에 기반한 상기 제 2 레이턴시 변화량이 상기 제 2 문턱 값을 초과하는 경우, 상기 호스트 장치가 상기 제 2 스토리지 장치에 데이터 리텐션 동작(Data retention operation)을 요청하는 단계를 더 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 스토리지 장치 및 상기 제 2 스토리지 장치는 이종의 스토리지 장치들인 방법.
  8. 제 1 항에 있어서,
    상기 리텐션 커맨드는 상기 문턱 값을 초과한 상기 읽기 레이턴시와 연관된 읽기 동작의 주소와 함께 전달되는 방법.
  9. 각각 복수의 불휘발성 메모리 장치들을 포함하는 복수의 스토리지 장치들; 및
    각 스토리지 장치를 제어하여 선택된 메모리 영역들에 읽기 데이터 단위의 읽기 동작을 수행하고, 각 스토리지 장치에서 수행된 읽기 동작에 대응된 읽기 레이턴시를 읽기 레이턴시 테이블로 저장하고, 각 스토리지 장치에 대해 상기 읽기 레이턴시 테이블에 저장된 상기 읽기 레이턴시를 기반으로 레이턴시 변화량이 문턱 값을 초과하는지를 판단하고, 상기 레이턴시 변화량이 상기 문턱 값을 초과하는 경우, 상기 문턱 값을 초과하는 스토리지 장치에 리텐션 커맨드를 통해 대응하는 스토리지 장치에 데이터 리텐션 동작(Data retention operation)을 요청하는 호스트 장치를 포함하는 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 복수의 스토리지 장치들 각각은, 상기 호스트 장치의 제어에 따라 상기 복수의 불휘발성 메모리 장치들을 제어하는 컨트롤러를 더 포함하는 메모리 시스템.
KR1020150153278A 2015-11-02 2015-11-02 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템 KR102306853B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150153278A KR102306853B1 (ko) 2015-11-02 2015-11-02 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템
US15/290,056 US9847136B2 (en) 2015-11-02 2016-10-11 Operating method for host device and memory system including host device and storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150153278A KR102306853B1 (ko) 2015-11-02 2015-11-02 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20170051843A true KR20170051843A (ko) 2017-05-12
KR102306853B1 KR102306853B1 (ko) 2021-10-01

Family

ID=58637567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150153278A KR102306853B1 (ko) 2015-11-02 2015-11-02 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템

Country Status (2)

Country Link
US (1) US9847136B2 (ko)
KR (1) KR102306853B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102408829B1 (ko) * 2021-11-09 2022-06-14 삼성전자주식회사 리텐션 강화를 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
KR20180067756A (ko) * 2016-12-12 2018-06-21 에스케이하이닉스 주식회사 제어 장치, 그 제어 장치를 포함하는 반도체 시스템 및 그 반도체 시스템의 구동 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100125917A (ko) * 2009-05-22 2010-12-01 삼성전자주식회사 독출 레이턴시 검출 기능을 갖는 메모리 컨트롤러, 및 이를 구비한 메모리 시스템
KR20120120795A (ko) * 2011-04-25 2012-11-02 삼성전자주식회사 데이터 저장 시스템 및 그의 데이터 리텐션 방법
KR20150019410A (ko) * 2013-08-14 2015-02-25 삼성전자주식회사 비휘발성 메모리 장치의 독출 시퀀스 제어 방법 및 이를 수행하는 메모리 시스템
KR20150092676A (ko) * 2014-02-05 2015-08-13 삼성전자주식회사 메모리 제어 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325090B2 (en) 2004-04-29 2008-01-29 Sandisk Il Ltd. Refreshing data stored in a flash memory
US7477547B2 (en) 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8243525B1 (en) 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
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 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US8114757B1 (en) 2010-10-11 2012-02-14 Monolithic 3D Inc. Semiconductor device and structure
US20140108705A1 (en) 2012-10-12 2014-04-17 Sandisk Technologies Inc. Use of High Endurance Non-Volatile Memory for Read Acceleration
US8902669B2 (en) 2012-11-08 2014-12-02 SanDisk Technologies, Inc. Flash memory with data retention bias
US9424179B2 (en) 2013-10-17 2016-08-23 Seagate Technology Llc Systems and methods for latency based data recycling in a solid state memory system
US9280419B2 (en) 2013-12-16 2016-03-08 International Business Machines Corporation Dynamic adjustment of data protection schemes in flash storage systems based on temperature, power off duration and flash age

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100125917A (ko) * 2009-05-22 2010-12-01 삼성전자주식회사 독출 레이턴시 검출 기능을 갖는 메모리 컨트롤러, 및 이를 구비한 메모리 시스템
KR20120120795A (ko) * 2011-04-25 2012-11-02 삼성전자주식회사 데이터 저장 시스템 및 그의 데이터 리텐션 방법
KR20150019410A (ko) * 2013-08-14 2015-02-25 삼성전자주식회사 비휘발성 메모리 장치의 독출 시퀀스 제어 방법 및 이를 수행하는 메모리 시스템
KR20150092676A (ko) * 2014-02-05 2015-08-13 삼성전자주식회사 메모리 제어 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102408829B1 (ko) * 2021-11-09 2022-06-14 삼성전자주식회사 리텐션 강화를 위한 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치

Also Published As

Publication number Publication date
US9847136B2 (en) 2017-12-19
US20170123687A1 (en) 2017-05-04
KR102306853B1 (ko) 2021-10-01

Similar Documents

Publication Publication Date Title
KR20180001711A (ko) 저장 장치
US10388395B2 (en) Storage device and bad block assigning method thereof
US11163494B2 (en) Memory system, memory controller and operating method
US11532360B2 (en) Memory system, memory device, and method for operating memory device
KR20210001414A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법
US11342013B2 (en) Memory system and operating method to set target command delay time to merge and process read commands
KR20130008300A (ko) 오버 프로그램을 이용하여 소거 동작을 수행하는 플래시 메모리 장치 및 그 동작방법
KR102306853B1 (ko) 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템
KR20220105303A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US11315650B2 (en) Memory system, memory controller, and method of operating memory system
US20210365382A1 (en) Memory system, memory controller, and operation method thereof
US11922040B2 (en) Extended super memory blocks in memory systems
US20230214133A1 (en) Selectively programming retired wordlines of a memory device
US20230152997A1 (en) Storage device sharing system and operating method thereof
KR20210012123A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11550375B2 (en) Storage system and operating method thereof
KR20230031617A (ko) 데이터를 리프레쉬하는 데이터 저장 장치 및 그 동작 방법
KR20230023477A (ko) 메모리 시스템 및 그 동작 방법
KR20210025412A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11275524B2 (en) Memory system, memory controller, and operation method of memory system
US11544204B2 (en) Memory system, memory controller and method for operating memory controller
US11404137B1 (en) Memory system and operating method of memory system
US11561853B2 (en) Memory system and memory controller determining a magnitude of a power supplied to the memory controller when error has occurred in target data
US11709610B2 (en) Memory system, memory controller and operating method
US12027210B2 (en) Programming delay scheme for a memory sub-system based on memory reliability

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right