KR20240072769A - 건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법 - Google Patents

건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법 Download PDF

Info

Publication number
KR20240072769A
KR20240072769A KR1020220154748A KR20220154748A KR20240072769A KR 20240072769 A KR20240072769 A KR 20240072769A KR 1020220154748 A KR1020220154748 A KR 1020220154748A KR 20220154748 A KR20220154748 A KR 20220154748A KR 20240072769 A KR20240072769 A KR 20240072769A
Authority
KR
South Korea
Prior art keywords
page
weak
page table
memory
memory controller
Prior art date
Application number
KR1020220154748A
Other languages
English (en)
Inventor
김상식
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020220154748A priority Critical patent/KR20240072769A/ko
Priority to US18/329,380 priority patent/US20240168653A1/en
Publication of KR20240072769A publication Critical patent/KR20240072769A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0658Controller construction 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

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

Abstract

일 실시예에 의한 메모리 시스템은 복수의 페이지를 포함하는 복수의 메모리 블록으로 구성되는 스토리지 장치 및, 노멀 리드 동작이 지시된 페이지 어드레스에 따라 접근한 페이지별 패일 비트 수에 기초하여 위크 페이지 테이블에 포함된 페이지 어드레스를 갱신 또는 유지하고, 위크 페이지 테이블에 기초하여 설정된 주기마다 스토리지 장치에 대한 유지관리 동작을 수행하는 메모리 컨트롤러를 포함할 수 있다.

Description

건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법{Memory System Adaptive to Health Condition, Memory Controller and Operating Method Therefor}
본 기술은 반도체 집적 장치에 관한 것으로, 보다 구체적으로는 건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법에 관한 것이다.
메모리 시스템은 휘발성 또는 비휘발성 메모리 장치를 저장 매체로 사용하여, 외부 장치의 요청에 따라 데이터 입출력 동작을 수행한다.
저장 매체로 사용되는 메모리 장치에 저장된 데이터가 유실되는 것을 방지하기 위해 다양한 유지관리 방법이 사용되고 있다. 데이터 유지관리 동작을 일정 주기마다 수행함으로써 메모리 장치에 저장된 데이터의 신뢰성을 확보할 수 있다.
메모리 시스템이 반복 사용됨에 따라 메모리 장치의 데이터 유지 특성이 변화할 수 있다.
따라서, 메모리 장치의 특성 변화에 적응적으로 유지관리 동작을 수행할 필요가 있다.
본 기술의 실시예는 메모리 장치에 발생한 에러 위치에 따라 유지관리 동작을 수행할 수 있는 건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법을 제공할 수 있다.
본 기술의 일 실시예에 의한 메모리 시스템은 복수의 페이지를 포함하는 복수의 메모리 블록으로 구성되는 스토리지 장치; 및 노멀 리드 동작이 지시된 페이지 어드레스에 따라 접근한 페이지별 패일 비트 수에 기초하여 위크 페이지 테이블에 포함된 페이지 어드레스를 갱신 또는 유지하고, 상기 위크 페이지 테이블에 기초하여 설정된 주기마다 상기 스토리지 장치에 대한 유지관리 동작을 수행하는 메모리 컨트롤러;를 포함할 수 있다.
본 기술의 일 실시예에 의한 메모리 컨트롤러는 설정된 개수의 페이지 어드레스가 저장된 위크 페이지 테이블; 상기 위크 페이지 테이블에 기초하여 설정된 주기마다 스토리지 장치에 접근하여 유지관리 동작을 수행하는 스캔/리프레쉬 로직; 및 노멀 리드 동작이 지시된 페이지 어드레스에 따라 접근한 페이지별 패일 비트 수에 기초하여 상기 위크 페이지 테이블에 포함된 페이지 어드레스를 갱신 또는 유지하는 위크 페이지 추적 회로;를 포함할 수 있다.
본 기술의 일 실시예에 의한 메모리 시스템의 동작 방법은 복수의 페이지를 포함하는 복수의 메모리 블록을 포함하는 스토리지 장치를 제어하는 메모리 컨트롤러가, 노멀 리드 동작이 지시된 페이지 어드레스에 대응하는 페이지에 접근하여 데이터를 리드하는 단계; 상기 메모리 컨트롤러가, 상기 노멀 리드 동작을 위해 접근한 페이지별 패일 비트 수에 기초하여 위크 페이지 테이블에 포함된 페이지 어드레스를 갱신 또는 유지하는 단계; 및 상기 메모리 컨트롤러가, 상기 위크 페이지 테이블에 기초하여 설정된 주기마다 유지관리 동작을 수행하는 단계;를 포함할 수 있다.
본 기술에 의하면, 내부 또는 외부 커맨드에 따라 데이터를 리드할 때 에러 정보를 수집하고, 이를 이용하여 건강 상태가 취약한 메모리 영역의 데이터를 리프레쉬할 수 있다.
따라서, 메모리 장치의 특성 변화에 적응적으로 유지관리 동작이 수행되어 데이터 유실을 방지하고 신뢰성을 향상시킬 수 있다.
도 1은 일 실시예에 의한 메모리 시스템의 구성도이다.
도 2는 일 실시예에 의한 스토리지 장치의 구성도이다.
도 3은 일 실시예에 의한 유지관리 회로의 구성도이다.
도 4는 일 실시예에 의한 위크 페이지 테이블 갱신 개념을 설명하기 위한 도면이다.
도 5는 일 실시예에 의한 위크 페이지 테이블 갱신 개념을 설명하기 위한 도면이다.
도 6은 일 실시예에 의한 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 7은 일 실시예에 의한 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 본 기술의 실시예를 보다 구체적으로 설명한다.
도 1은 일 실시예에 의한 메모리 시스템의 구성도이다.
도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(100) 및 스토리지 장치(200)를 포함할 수 있다. 메모리 시스템(10)은 외부 장치(미도시)에 전기적으로 연결되어 외부 장치와 데이터를 교환할 수 있다.
외부 장치는 개인용 컴퓨터, 랩탑 컴퓨터, 서버 컴퓨터, 워크스테이션, 태블릿 PC, 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS), 스마트 TV, 스마트 폰, 의료 장치, 영상 표시 장치, 계측 장치, IoT(Internet of Things) 장치 등 다양한 종류의 컴퓨팅 시스템으로부터 선택될 수 있다.
스토리지 장치(200)는 휘발성 메모리 장치 및 비휘발성 메모리 장치 중 적어도 하나를 포함할 수 있다. 스토리지 장치(200)는 메모리 컨트롤러(100)와 복수의 채널(CH1, CH2, CH3, …, CHm)을 통해 접속되고, 복수의 메모리 칩(CHIP) 또는 복수의 패키지를 포함할 수 있다.
도 2는 일 실시예에 의한 스토리지 장치의 구성도이다.
스토리지 장치(200)를 구성하는 각 메모리 칩(CHIP)은 복수의 메모리 다이(Die_11 ~ Die_14)를 포함할 수 있다.
메모리 컨트롤러(100)는 채널(CH)을 통해 복수의 다이들(Die_11 ~ Die_14)과 연결될 수 있다. 채널의 개수 또는 각 채널에 연결되는 다이의 개수는 도 1 및 도 2에 도시한 예에 제한되지 않는다.
각 다이(Die_11 ~ Die_14)는 하나 또는 그 이상의 플레인들을 포함할 수 있다. 설명의 편의를 위하여, 도 2에는 하나의 다이가 하나의 플레인을 포함하는 것을 도시하였다.
하나의 플레인은 복수의 메모리 블록들(BLK1~BLKn, n은 1이상의 자연수)을 포함할 수 있고, 각각 메모리 블록은 복수의 페이지들(Page 1~Page k, k는 1이상의 자연수)을 포함할 수 있다.
메모리 컨트롤러(100)는 외부 장치의 요청에 응답하여 스토리지 장치(200)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(100)는 외부 장치의 라이트 요청에 따라 스토리지 장치(200)에 데이터가 프로그램되도록 할 수 있다. 그리고, 외부 장치의 읽기 요청에 응답하여 스토리지 장치(200)에 기록되어 있는 데이터를 외부 장치로 제공할 수 있다.
메모리 컨트롤러(100)는 적어도 하나의 프로세서(CPU(s); 111), 외부 인터페이스 회로(113), 스토리지 인터페이스 회로(115), 메모리(117), 에러 정정 회로(ECC; 119) 및 유지관리 회로(30)를 포함할 수 있다.
프로세서(111)는 메모리 시스템(10)의 다양한 동작을 위해 제공되는 펌웨어 또는 소프트웨어를 하드웨어 상에서 실행시킴에 따라 동작할 수 있도록 구성될 수 있다. 프로세서(111)는 하드웨어 및 하드웨어 상에서 동작하는 펌웨어 또는 소프트웨어가 조합된 형태일 수 있다. 일 실시예에서, 프로세서(111)는 스토리지 장치(200)를 관리하기 위한 플래시 변환계층(FTL)의 기능, 예를 들어 가비지 콜렉션, 주소맵핑, 웨어레벨링 등을 수행할 수 있다.
외부 인터페이스 회로(113)는 프로세서(111)의 제어에 따라 외부 장치로부터 커맨드 및 클럭신호를 수신하고 데이터의 입출력을 제어하기 위한 통신 채널을 제공할 수 있다. 특히, 외부 인터페이스 회로(113)는 외부 장치와 메모리 시스템(10) 간의 물리적 연결을 제공할 수 있다.
일 실시 예에서, 외부 인터페이스 회로(113)는 USB(Universal Serial Bus) 프로토콜, MMC(multimedia card) 프로토콜, PCI(peripheral component interconnection) 프로토콜, PCI-E(PCI-express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, SATA(Serial-ATA) 프로토콜, PATA(Parallel-ATA) 프로토콜, SCSI(small computer small interface) 프로토콜, ESDI(enhanced small disk interface) 프로토콜, IDE(Integrated Drive Electronics) 프로토콜, 사유(private) 프로토콜, SMBus(System Management Bus) 프로토콜, I2C(Inter-Integrated Circuit) 프로토콜, I3C(Improved Inter-Integrated Circuit) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 사용하는 인터페이스를 기반으로 외부 장치와 통신할 수 있다.
스토리지 인터페이스 회로(115)는 메모리 컨트롤러(100)와 스토리지 장치(200) 간의 신호 송수신을 위한 통신 채널을 제공할 수 있다. 스토리지 인터페이스 회로(115)는 프로세서(111)의 제어에 따라 버퍼 메모리(미도시)에 일시 저장된 데이터를 스토리지 장치(200)에 기입할 수 있다. 그리고 스토리지 장치(200)로부터 독출되는 데이터를 버퍼 메모리로 전달하여 일시 저장할 수 있다. 미도시한 버퍼 메모리는 컨트롤러(100)의 내부 및/또는 외부에 구비될 수 있다.
메모리(117)는 메모리 컨트롤러(100)의 동작에 필요한 데이터 또는 메모리 컨트롤러(100)에 의해 생성된 데이터를 저장할 수 있다.
ECC(119)는 외부 장치 또는 프로세서(111)로부터 제공되는 데이터를 설정된 방식으로 인코딩하여 스토리지 장치(200)에 저장하고, 스토리지 장치(200)로부터 리드된 데이터를 설정된 방식으로 디코딩하고 에러를 정정하여 외부 장치 또는 프로세서(111)로 제공할 수 있다.
유지관리 회로(30)는 스토리지 장치(200)에 저장된 데이터의 유지관리 동작을 수행할 수 있다.
유지관리 동작은 설정된 주기마다 유지관리 모드로 진입하여 스토리지 장치(200)를 구성하는 메모리 블록 별로 특정 페이지(들)에 저장된 데이터를 리드(스캔)하고 허용치 이상 패일 비트가 검출되면 해당 페이지가 포함된 메모리 블록의 데이터를 리프레쉬하는 "스캔 및 리프레쉬" 동작일 수 있다. 스캔 및 리프레쉬를 위한 리드 동작은 "테스트 리드" 동작이라 칭할 수 있고, 내부 또는 외부 커맨드에 의한 리드 동작은 "노멀 리드" 동작이라 칭할 수 있다.
본 기술에 의한 유지관리 회로(30)는 위크 페이지 테이블을 참조하여 테스트 리드 동작을 수행할 수 있다. 위크 페이지 테이블은 테스트 리드 대상이 되는 설정된 개수의 페이지 어드레스를 저장할 수 있다. 메모리 시스템(10)을 출하하기 전 테스트를 통해 건강 상태 즉, 메모리 유지 특성이 취약한 설정된 개수의 위크 페이지 세트를 검출하여 초기 위크 페이지 테이블을 구성할 수 있다. 다른 예로서, 초기 위크 페이지 테이블은 설정된 개수의 페이지 어드레스 세트를 랜덤하게 선택하여 구성하는 것도 가능하다.
메모리 시스템(10)이 동작함에 따라 페이지들의 건강상태가 변화될 수 있고, 유지관리 회로(30)는 페이지들의 건상상태를 반영하여 위크 페이지 테이블을 갱신할 수 있다.
플래시 메모리 장치와 같은 비휘발성 메모리 장치는 특정 페이지에 대한 리드 동작이 반복되면 해당 페이지에 포함된 메모리 셀들의 문턱전압 레벨이 천이되어 저장된 데이터가 손상될 수 있다. 이러한 현상은 리드 디스터번스(read disturbance)로 불리며, 리드 디스터번스는 리드 에러 발생률을 증가시키는 원인으로 작용한다. 이에, 본 기술에서는 리드 디스터번스와 같은 현상을 반영하여 위크 페이지 테이블을 동적으로 변경함으로써 데이터 유지 특성을 개선할 수 있다.
예를 들어, 메모리 시스템(10)에서 노멀 리드를 수반하는 커맨드가 수행되어 ECC(119)를 통해 리드 데이터에 대한 에러가 검출될 수 있다. 유지관리 회로(30)는 노멀 리드 동작에 따라 리드된 페이지별 패일 비트 수를 체크하여 위크 페이지 테이블을 갱신할 수 있다. 일 실시예에서, 위크 페이지 테이블은 패일 비트 수가 많은 순으로 설정된 개수의 페이지 어드레스를 포함하도록 갱신될 수 있다. 위크 페이지 테이블은 전부 또는 부분적으로 갱신될 수 있다.
스토리지 장치(200)를 구성하는 페이지의 건강상태 변화를 반영하여 위크 페이지 테이블을 갱신함에 따라, 데이터 유지 특성이 취약한 페이지의 데이터를 안전하게 보호할 수 있다.
도 3은 일 실시예에 의한 유지관리 회로의 구성도이다.
도 3을 참조하면, 유지관리 회로(30)는 위크 페이지 테이블(310), 스캔/리프레쉬 로직(320) 및 위크 페이지 추적 회로(330)를 포함할 수 있다.
위크 페이지 테이블(310)은 적어도 제 1 위크 페이지 테이블을 포함할 수 있다. 메모리 시스템(10)의 출하 전 테스트를 통해 선택된, 또는 랜덤하게 선택된 제 1 개수의 페이지 어드레스 세트가 제 1 위크 페이지 테이블에 초기값으로 저장될 수 있고, 메모리 시스템(10)이 동작함에 따라 변화되는 페이지별 건강상태에 따라 제 1 위크 페이지 테이블이 동적으로 변경될 수 잇다. 일 실시예에서, 제 1 위크 페이지 테이블은 메모리 시스템(10)에서 노멀 리드를 수반하는 커맨드가 처리됨에 따라 적어도 부분적으로 갱신되거나 유지될 수 있다.
위크 페이지 테이블(310)은 제 1 개수와 같거나 다른 제 2 개수의 페이지 어드레스 세트를 저장하는 제 2 위크 페이지 테이블을 더 포함할 수 있다. 메모리 시스템(10)을 출하하기 전 테스트를 통해 건강 상태 즉, 메모리 유지 특성이 취약한 제 2 개수의 위크 페이지 세트를 검출하여 제 2 위크 페이지 테이블을 구성할 수 있다. 제 2 위크 페이지 테이블은 메모리 시스템(10)의 수명이 유지되는 동안 변경되지 않고 유지될 수 있다.
스캔/리프레쉬 로직(320)은 설정된 주기마다 유지관리 모드로 진입하여 위크 페이지 테이블(310)에 저장된 페이지 어드레스에 기초하여 스토리지 장치(200)에 대한 유지관리 동작을 수행할 수 있다. 유지관리 동작은 위크 페이지 테이블(310)이 지시하는 페이지 어드레스의 데이터를 테스트 리드하고, 허용치 이상 패일 비트가 검출되면 해당 메모리 블록의 데이터를 리프레쉬하는 동작일 수 있다. 리프레쉬 동작은 특정 메모리 블록의 데이터를 리드하고 에러를 정정하여 다른 메모리 블록에 저장하는 동작을 포함할 수 있다. 리프레쉬 동작에 수반되는 리드 동작은 노멀 리드 동작의 일종일 수 있다.
위크 페이지 추적 회로(330)는 노멀 리드 동작이 수반되는 내부 또는 외부 커맨드가 수행될 때, 리드 대상 페이지별 패일 비트 수를 체크하여, 패일 비트 수가 많은 순으로 제 1 개수의 페이지 어드레스를 선택하여 위크 페이지 테이블(310)을 적어도 부분적으로 갱신하거나 유지할 수 있다.
노멀 리드 동작이 수반되는 커맨드는 외부장치에 의한 리드 커맨드, 프로세서(111)에 의한 웨어레벨링 커맨드, 가비지 콜렉션 커맨드, 리프레쉬 커맨드 등을 포함할 수 있다.
따라서, 스캔/리프레쉬 로직(320)에 의한 리프레쉬 대상이 되는 메모리 블록의 페이지별 패일 비트 수를 체크하여 위크 페이지 테이블(310)을 적어도 부분적으로 갱신하거나 유지할 수 있다.
도 4는 일 실시예에 의한 위크 페이지 테이블 갱신 개념을 설명하기 위한 도면이다.
도 4를 참조하면, 위크 페이지 테이블(310)은 메모리 시스템(10)이 동작함에 따라 가변될 수 있는 동적 위크 페이지 테이블인 제 1 위크 페이지 테이블(311)을 포함할 수 있다.
제 1 위크 페이지 테이블(311)에는 제 1 개수의 페이지 어드레스(150, 170, 175, 500, 510, 511, 512, 997)가 저장될 수 있다.
노멀 리드를 수반하는 커맨드를 처리함에 따라 패일 비트 수가 많은 순으로 제 1 개수와 같거나 상이한 제 3 개수의 페이지 어드레스(300, 301, 302, 415, 510, 511, 512, 997)를 포함하는 후보 리스트(313)가 검출될 수 있다.
위크 페이지 추적 회로(330)는 제 1 위크 페이지 테이블(311)에 포함된 페이지 어드레스별 패일 비트 수와, 후보 리스트(313)에 포함된 페이지 어드레스별 패일 비트 수에 기초하여, 패일 비트 수가 많은 순으로 제 1 개수의 페이지 어드레스를 선택하여 갱신된 제 1 위크 페이지 테이블(311-1)을 구성할 수 있다.
도 4에는 제 1 위크 페이지 테이블(311)에 포함된 페이지 어드레스(150, 170, 175, 500)보다 패일 비트 수가 많은 페이지 어드레스(300, 301, 302, 415)에 의해 제 1 위크 페이지 테이블이 갱신(311-1)된 예를 도시하였다.
제 1 위크 페이지 테이블(311)에 포함된 페이지 어드레스 별 패일 비트 수보다 많은 패일 비트 수를 갖는 후보 리스트가 검출되지 않는 경우 제 1 위크 페이지 테이블은 갱신 없이 유지될 수 있다.
도 5는 일 실시예에 의한 위크 페이지 테이블 갱신 개념을 설명하기 위한 도면이다.
도 5를 참조하면, 위크 페이지 테이블(310)은 제 1 위크 페이지 테이블(311) 및 제 2 위크 페이지 테이블(321)을 포함할 수 있다.
제 1 위크 페이지 테이블(311)은 도 4를 참조하여 설명한 방식에 의해 갱신 또는 유지될 수 있다.
메모리 시스템(10)을 출하하기 전 테스트를 통해 건강 상태 즉, 메모리 유지 특성이 취약한 제 2 개수의 위크 페이지를 검출하여 제 2 위크 페이지 테이블(321)을 구성할 수 있다. 제 2 위크 페이지 테이블(321)은 제 1 위크 페이지 테이블(311)이 갱신(311-1)되는 경우에도 변경되지 않고 유지되는 정적 위크 페이지 테이블일 수 있다.
제 2 위크 페이지 테이블(321)을 구성하는 방식은 이에 한정되지 않으며, 제 2 개수의 페이지 어드레스를 랜덤하게 선택하거나, 제 2 개수의 특정 페이지 어드레스에 의해 구성하는 등 다양한 방식을 채택할 수 있다.
위크 페이지 테이블(310)은 메모리 컨트롤러(100)의 메모리(117)에 저장될 수 있다.
도 5에는 개념적인 이해를 돕기 위하여 제 1 위크 페이지 테이블(311, 311-1)과 제 2 위크 페이지 테이블(321)을 별도의 테이블로 도시하였으나, 본 기술이 이에 한정되는 것은 아니다. 예를 들어, 위크 페이지 테이블 저장 영역의 일부에는 제 1 위크 페이지 테이블에 포함되는 페이지 어드레스가 저장 및 갱신되고, 위크 페이지 테이블 저장 영역의 다른 영역에는 제 2 위크 페이지 테이블에 포함되는 페이지 어드레스가 저장될 수 있다.
도 6은 일 실시예에 의한 메모리 시스템의 동작 방법을 설명하기 위한 흐름도로서, 위크 페이지 테이블 갱신 방법의 일 예를 나타낸다.
도 6을 참조하면, 메모리 컨트롤러(100)는 노멀 리드를 수반하는 커맨드를 수행함에 따라(S101), 리드 데이터에 대한 에러를 검출할 수 있다(S103).
노멀 리드 동작이 수반되는 커맨드는 외부장치에 의한 리드 커맨드, 프로세서(111)에 의한 웨어레벨링 커맨드, 가비지 콜렉션 커맨드, 리프레쉬 커맨드 등을 포함할 수 있다.
메모리 컨트롤러(100)는 노멀 리드 동작에 따라 리드된 페이지별 패일 비트 수를 카운트하여(S105) 위크 페이지 테이블을 갱신할 수 있다(S107). 일 실시예에서, 메모리 컨트롤러(100)는 패일 비트 수가 많은 순으로 설정된 개수의 페이지 어드레스를 선택하여 위크 페이지 테이블을 적어도 부분적으로 갱신하거나 유지할 수 있다.
위크 페이지 테이블은 동적으로 변경되는 제 1 위크 페이지 테이블과 변경없이 유지되는 제 2 위크 페이지 테이블을 포함할 수 있다. 노멀 리드 동작에 따라 제 1 위크 페이지 테이블이 변경 또는 유지될 수 있다.
도 7은 일 실시예에 의한 메모리 시스템의 동작 방법을 설명하기 위한 흐름도로서, 위크 페이지 테이블을 이용한 유지관리 방법의 일 예를 나타낸다.
도 7을 참조하면, 메모리 컨트롤러(100)는 유지관리 모드로 진입할 주기가 도래하였는지 확인할 수 있다(S201). 설정된 주기가 도래하지 않은 경우(S201:N) 메모리 컨트롤러(100)는 주기가 도래하였는지 계속해서 모니터링할 수 있다.
설정된 주기가 도래한 경우(S201:Y) 위크 페이지 테이블에 저장된 페이지 어드레스가 지시하는 데이터를 테스트 리드할 수 있다(S203).
메모리 컨트롤러(100)는 테스트 리드 된 데이터의 에러를 체크하여, 패일 비트 수가 허용치(TH)를 초과하여 검출되는지 확인할 수 있다(S205). 패일 비트 수가 허용치(TH) 이하인 경우(S205:N) 유직관리모드를 종료하고 주기가 도래하는지 모니터링할 수 있다(S201).
패일 비트 수가 허용치(TH)를 초과하여 검출된 경우(S205:Y), 메모리 컨트롤러(100)는 해당 페이지가 포함된 메모리 블록의 데이터를 리프레쉬할 수 있다(S207).
일 실시예에서, 리프레쉬 동작(S207)은 해당 메모리 블록의 데이터를 리드하고 에러를 정정하여 다른 메모리 블록에 저장하는 동작을 포함할 수 있다. 리프레쉬 동작에 수반되는 리드 동작을 통해 패일 비트 수를 검출하여 위크 페이지 테이블이 갱신 또는 유지될 수 있다.
메모리 시스템(10)이 동작함에 따라 위크 페이지의 위치가 변화될 수 있고, 이를 반영하여 구성한 위크 페이지 테이블을 이용하여 테스트 리드 및 리프레쉬를 수행함으로서, 디스터번스 특성이 취약한 페이지의 데이터를 안전하게 저장할 수 있다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 메모리 시스템
100 : 메모리 컨트롤러
200 : 스토리지 장치
30 : 유지관리 회로

Claims (18)

  1. 복수의 페이지를 포함하는 복수의 메모리 블록으로 구성되는 스토리지 장치; 및
    노멀 리드 동작이 지시된 페이지 어드레스에 따라 접근한 페이지별 패일 비트 수에 기초하여 위크 페이지 테이블에 포함된 페이지 어드레스를 갱신 또는 유지하고, 상기 위크 페이지 테이블에 기초하여 설정된 주기마다 상기 스토리지 장치에 대한 유지관리 동작을 수행하는 메모리 컨트롤러;
    를 포함하는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 유지관리 동작은, 상기 위크 페이지 테이블에 저장된 페이지 어드레스가 지시하는 페이지에 저장된 데이터를 리드하여, 허용치를 초과하는 수의 패일 비트가 검출된 페이지가 포함된 메모리 블록의 데이터를 리프레쉬하는 동작을 포함하는 메모리 시스템.
  3. 제 1 항에 있어서,
    상기 메모리 컨트롤러는,
    상기 패일 비트 수가 많은 순으로 설정된 개수의 페이지 어드레스 선택하여 상기 위크 페이지 테이블을 적어도 부분적으로 갱신 또는 유지하도록 구성되는 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 위크 페이지 테이블은,
    초기 저장된 제 1 페이지 어드레스 세트가 상기 노멀 리드 동작에 의해 적어도 부분적으로 갱신되거나 유지되는 제 1 위크 페이지 테이블; 및
    초기 저장된 제 2 페이지 어드레스 세트가 유지되는 제 2 위크 페이지 테이블;
    을 포함하도록 구성되는 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 메모리 컨트롤러는, 상기 제 1 페이지 어드레스 세트에 포함된 페이지 어드레스별 패일 비트 수와, 상기 노멀 리드 동작시 접근한 페이지별 패일 비트 수에 기초하여,
    패일 비트 수가 많은 순으로 설정된 개수의 페이지 어드레스 선택하여 상기 위크 페이지 테이블을 적어도 부분적으로 갱신 또는 유지하도록 구성되는 메모리 시스템.
  6. 제 1 항에 있어서,
    상기 노멀 리드 동작은 외부장치에 의한 리드 커맨드 또는 상기 메모리 컨트롤러에 의한 레벨링 커맨드, 가비지 콜렉션 커맨드, 리프레쉬 커맨드를 포함하도록 구성되는 메모리 시스템.
  7. 설정된 개수의 페이지 어드레스가 저장된 위크 페이지 테이블;
    상기 위크 페이지 테이블에 기초하여 설정된 주기마다 스토리지 장치에 접근하여 유지관리 동작을 수행하는 스캔/리프레쉬 로직; 및
    노멀 리드 동작이 지시된 페이지 어드레스에 따라 접근한 페이지별 패일 비트 수에 기초하여 상기 위크 페이지 테이블에 포함된 페이지 어드레스를 갱신 또는 유지하는 위크 페이지 추적 회로;
    를 포함하는 메모리 컨트롤러.
  8. 제 7 항에 있어서,
    상기 스캔/리프레쉬 로직은, 상기 위크 페이지 테이블에 저장된 페이지 어드레스가 지시하는 페이지에 저장된 데이터를 리드하여, 허용치를 초과하는 수의 패일 비트가 검출된 페이지가 포함된 메모리 블록의 데이터를 리프레쉬하도록 상기 유지관리 동작을 제어하는 메모리 컨트롤러.
  9. 제 7 항에 있어서,
    상기 위크 페이지 추적 회로는,
    상기 패일 비트 수가 많은 순으로 설정된 개수의 페이지 어드레스 선택하여 상기 위크 페이지 테이블을 적어도 부분적으로 갱신 또는 유지하도록 구성되는 메모리 컨트롤러.
  10. 제 7 항에 있어서,
    상기 위크 페이지 테이블은,
    초기 저장된 제 1 페이지 어드레스 세트가 상기 노멀 리드 동작에 의해 적어도 부분적으로 갱신되거나 유지되는 제 1 위크 페이지 테이블; 및
    초기 저장된 제 2 페이지 어드레스 세트가 유지되는 제 2 위크 페이지 테이블;
    을 포함하도록 구성되는 메모리 컨트롤러.
  11. 제 10 항에 있어서,
    상기 위크 페이지 추적 회로는, 상기 제 1 페이지 어드레스 세트에 포함된 페이지 어드레스별 패일 비트 수와, 상기 노멀 리드 동작시 접근한 페이지별 패일 비트 수에 기초하여,
    패일 비트 수가 많은 순으로 설정된 개수의 페이지 어드레스 선택하여 상기 위크 페이지 테이블을 적어도 부분적으로 갱신 또는 유지하도록 구성되는 메모리 컨트롤러.
  12. 제 7 항에 있어서,
    상기 노멀 리드 동작은 외부장치에 의한 리드 커맨드 또는 상기 메모리 컨트롤러에 의한 레벨링 커맨드, 가비지 콜렉션 커맨드, 리프레쉬 커맨드를 포함하도록 구성되는 메모리 컨트롤러.
  13. 복수의 페이지를 포함하는 복수의 메모리 블록을 포함하는 스토리지 장치를 제어하는 메모리 컨트롤러가, 노멀 리드 동작이 지시된 페이지 어드레스에 대응하는 페이지에 접근하여 데이터를 리드하는 단계;
    상기 메모리 컨트롤러가, 상기 노멀 리드 동작을 위해 접근한 페이지별 패일 비트 수에 기초하여 위크 페이지 테이블에 포함된 페이지 어드레스를 갱신 또는 유지하는 단계; 및
    상기 메모리 컨트롤러가, 상기 위크 페이지 테이블에 기초하여 설정된 주기마다 유지관리 동작을 수행하는 단계;
    를 포함하는 메모리 시스템의 동작 방법.
  14. 제 13 항에 있어서,
    상기 유지관리 동작은, 상기 위크 페이지 테이블에 저장된 페이지 어드레스가 지시하는 페이지에 저장된 데이터를 리드하여, 허용치를 초과하는 수의 패일 비트가 검출된 페이지가 포함된 메모리 블록의 데이터를 리프레쉬하는 동작을 포함하는 메모리 시스템의 동작 방법.
  15. 제 13 항에 있어서,
    상기 메모리 컨트롤러가, 상기 패일 비트 수가 많은 순으로 설정된 개수의 페이지 어드레스 선택하여 상기 위크 페이지 테이블을 적어도 부분적으로 갱신 또는 유지하는 메모리 시스템의 동작 방법.
  16. 제 13 항에 있어서,
    상기 위크 페이지 테이블은,
    초기 저장된 제 1 페이지 어드레스 세트가 상기 노멀 리드 동작에 의해 적어도 부분적으로 갱신되거나 유지되는 제 1 위크 페이지 테이블; 및
    초기 저장된 제 2 페이지 어드레스 세트가 유지되는 제 2 위크 페이지 테이블;
    을 포함하도록 구성되는 메모리 시스템의 동작 방법.
  17. 제 16 항에 있어서,
    상기 메모리 컨트롤러가, 상기 제 1 페이지 어드레스 세트에 포함된 페이지 어드레스별 패일 비트 수와, 상기 노멀 리드 동작시 접근한 페이지별 패일 비트 수에 기초하여, 패일 비트 수가 많은 순으로 설정된 개수의 페이지 어드레스 선택하여 상기 위크 페이지 테이블을 적어도 부분적으로 갱신 또는 유지하도록 구성되는 메모리 시스템의 동작 방법.
  18. 제 13 항에 있어서,
    상기 노멀 리드 동작은 외부장치에 의한 리드 커맨드 또는 상기 메모리 컨트롤러에 의한 레벨링 커맨드, 가비지 콜렉션 커맨드, 리프레쉬 커맨드를 포함하도록 구성되는 메모리 시스템의 동작 방법.
KR1020220154748A 2022-11-17 2022-11-17 건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법 KR20240072769A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220154748A KR20240072769A (ko) 2022-11-17 2022-11-17 건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법
US18/329,380 US20240168653A1 (en) 2022-11-17 2023-06-05 Memory system adaptive to health condition, and memory controller for memory system and operating method of the memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220154748A KR20240072769A (ko) 2022-11-17 2022-11-17 건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20240072769A true KR20240072769A (ko) 2024-05-24

Family

ID=91079767

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220154748A KR20240072769A (ko) 2022-11-17 2022-11-17 건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법

Country Status (2)

Country Link
US (1) US20240168653A1 (ko)
KR (1) KR20240072769A (ko)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101468432B1 (ko) * 2007-03-28 2014-12-04 샌디스크 테크놀로지스, 인코포레이티드 제어된 스크럽 데이터 판독에 의해 트리거되는 플래시 메모리 리프레시 기술
WO2013190597A1 (en) * 2012-06-21 2013-12-27 Hitachi, Ltd. Flash memory device and storage control method
KR20180129233A (ko) * 2017-05-26 2018-12-05 에스케이하이닉스 주식회사 리프레시 동작을 제어하는 반도체 장치 및 이를 포함하는 메모리 시스템
KR102499061B1 (ko) * 2018-08-22 2023-02-13 삼성전자주식회사 상 변화 메모리 장치를 포함하는 반도체 메모리 장치 및 상 변화 메모리 장치를 액세스하는 방법
KR20210038096A (ko) * 2019-09-30 2021-04-07 에스케이하이닉스 주식회사 메모리 시스템, 데이터 시스템 및 그 동작방법
KR20220021097A (ko) * 2020-08-13 2022-02-22 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
KR20220028300A (ko) * 2020-08-28 2022-03-08 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US11461025B2 (en) * 2020-11-05 2022-10-04 Macronix International Co., Ltd. Data retention in memory devices
KR20220070997A (ko) * 2020-11-23 2022-05-31 에스케이하이닉스 주식회사 컨트롤러 및 이를 포함하는 메모리 시스템
US11797215B2 (en) * 2021-12-09 2023-10-24 SK Hynix Inc. Memory device and memory system performing error check and scrub operation

Also Published As

Publication number Publication date
US20240168653A1 (en) 2024-05-23

Similar Documents

Publication Publication Date Title
US8671330B2 (en) Storage device, electronic device, and data error correction method
TWI555023B (zh) 快閃記憶體更新方法以及快閃記憶體控制器
US10943639B2 (en) Data storage device and operating method thereof
KR20190022987A (ko) 데이터 저장 장치 및 그것의 동작 방법
US8234544B2 (en) Data access apparatus and data access method
TWI660346B (zh) 記憶體管理方法以及儲存控制器
TWI436211B (zh) 區塊管理方法、記憶體控制器與記憶體儲存裝置
JP2010517168A (ja) Nandメモリのためのプログラミング管理データ
US9123443B2 (en) Memory device, memory management device, and memory management method
US20170075574A1 (en) Non-volatile memory device, and storage apparatus having non-volatile memory device
US11061614B2 (en) Electronic apparatus having data retention protection and operating method thereof
JP7308025B2 (ja) 集積回路装置及びストレージ装置
US20210255783A1 (en) Method and apparatus for performing data storage management to enhance data reliability with aid of repeated write command detection
US11966603B2 (en) Memory system for updating firmware when SPO occurs and operating method thereof
US11481153B2 (en) Data storage device and operating method thereof
JP6961759B2 (ja) メモリデバイスにおけるリフレッシュ管理を実行するための方法、関連するメモリデバイス及びそのコントローラ
CN114840451A (zh) 存储装置、存储系统和操作存储装置的方法
KR20240072769A (ko) 건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법
TWI670599B (zh) 記憶體管理方法以及儲存控制器
US9128887B2 (en) Using a buffer to replace failed memory cells in a memory component
US20240184469A1 (en) Memory system with secured performance and reliability, memory controller and method of operating the same
US20240264946A1 (en) Memory controller, method of driving memory controller, and memory system
KR20230032827A (ko) 메모리, 메모리 시스템 및 메모리의 동작 방법 및 메모리 시스템의 동작 방법