KR20160107381A - 데이터 저장 장치 및 그것의 동작 방법 - Google Patents

데이터 저장 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20160107381A
KR20160107381A KR1020150029661A KR20150029661A KR20160107381A KR 20160107381 A KR20160107381 A KR 20160107381A KR 1020150029661 A KR1020150029661 A KR 1020150029661A KR 20150029661 A KR20150029661 A KR 20150029661A KR 20160107381 A KR20160107381 A KR 20160107381A
Authority
KR
South Korea
Prior art keywords
access
access count
target area
count
areas
Prior art date
Application number
KR1020150029661A
Other languages
English (en)
Other versions
KR102527288B1 (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 KR1020150029661A priority Critical patent/KR102527288B1/ko
Priority to US14/820,261 priority patent/US9678827B2/en
Priority to TW104132898A priority patent/TWI683252B/zh
Priority to CN201510646958.2A priority patent/CN105489239B/zh
Publication of KR20160107381A publication Critical patent/KR20160107381A/ko
Application granted granted Critical
Publication of KR102527288B1 publication Critical patent/KR102527288B1/ko

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • 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/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Abstract

데이터 저장 장치는 액세스 요청에 근거하여, 액세스 요청 횟수 및 액세스 요청된 타겟 영역에 대응하는 액세스 횟수를 업데이트하고, 상기 액세스 요청 횟수가 제1 임계 값에 도달할 때마다 상기 액세스 횟수를 초기화하도록 구성된 컨트롤러 및 상기 타겟 영역을 포함하고, 상기 컨트롤러의 제어에 따라 상기 타겟 영역을 액세스하도록 구성된 불휘발성 메모리 장치를 포함한다.

Description

데이터 저장 장치 및 그것의 동작 방법{DATA STORAGE DEVICE AND OPERATING METHOD THEREOF}
본 발명은 데이터 저장 장치에 관한 것으로, 더욱 상세하게는 신뢰성 유지 동작을 수행하는 데이터 저장 장치 및 그 동작 방법에 관한 것이다.
데이터 저장 장치는 외부 장치의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 데이터 저장 장치는 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다. 외부 장치는 데이터를 처리할 수 있는 전자 장치로서, 컴퓨터, 디지털 카메라 또는 휴대폰 등을 포함할 수 있다. 데이터 저장 장치는 외부 장치에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 외부 장치에 연결됨으로써 동작할 수 있다.
데이터 저장 장치는 PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어 카드, 메모리 스틱, 다양한 멀티 미디어 카드(MMC, eMMC, RS-MMC, MMC-micro), SD(Secure Digital) 카드(SD, Mini-SD, Micro-SD), UFS(Universal Flash Storage) 또는 SSD(Solid State Drive) 등으로 구성될 수 있다.
데이터 저장 장치는 데이터를 저장하기 위해 불휘발성 메모리 장치를 포함할 수 있다. 불휘발성 메모리 장치는 전원이 인가되지 않더라도 저장된 데이터를 유지할 수 있다. 불휘발성 메모리 장치는 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(Ferroelectrics Random Access Memory), PCRAM(Phase-Change Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory) 등을 포함할 수 있다.
본 발명의 실시 예는 데이터 신뢰성이 향상된 데이터 저장 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 액세스 요청에 근거하여, 액세스 요청 횟수 및 액세스 요청된 타겟 영역에 대응하는 액세스 횟수를 업데이트하고, 상기 액세스 요청 횟수가 제1 임계 값에 도달할 때마다 상기 액세스 횟수를 초기화하도록 구성된 컨트롤러 및 상기 타겟 영역을 포함하고, 상기 컨트롤러의 제어에 따라 상기 타겟 영역을 액세스하도록 구성된 불휘발성 메모리 장치를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은 액세스 요청에 근거하여, 액세스 요청 횟수를 업데이트하는 단계, 액세스 요청된 불휘발성 메모리 장치의 타겟 영역에 대응하는 제1 액세스 횟수를 업데이트하는 단계 및 상기 액세스 요청 횟수가 제1 임계 값에 도달할 때마다, 상기 제1 액세스 횟수를 초기화하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은 제1 해시 함수에 근거하여, 액세스 요청된 타겟 영역의 어드레스를 제1 해시 값으로 해싱하는 단계, 복수의 해시 값들로 인덱싱된 복수의 액세스 횟수들을 포함하는 액세스 횟수 테이블에서, 상기 제1 해시 값으로 인덱싱된 제1 액세스 횟수를 업데이트하는 단계 및 액세스 요청에 근거하여, 액세스 요청 횟수를 업데이트하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 복수의 불휘발성 메모리 장치들을 포함하는 저장 매체 및 상기 저장 매체의 타겟 영역을 액세스할 때, 제1 액세스 횟수 및 제2 액세스 횟수를 각각 업데이트하도록 구성된 컨트롤러를 포함하되, 상기 제1 액세스 횟수는 상기 저장 매체의 제1 단위의 영역들이 그룹핑된 제1 그룹들 중 상기 타겟 영역을 포함하는 제1 그룹에 대응하고, 상기 제2 액세스 횟수는 상기 저장 매체의 제2 단위의 영역들이 그룹핑된 제2 그룹들 중 상기 타겟 영역을 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 복수의 불휘발성 메모리 장치들을 포함하는 저장 매체 및 상기 저장 매체의 타겟 영역을 액세스할 때, 제1 액세스 횟수 및 제2 액세스 횟수를 업데이트하도록 구성된 컨트롤러를 포함하되, 상기 제1 액세스 횟수는, 해시 함수에 근거하여 공통의 해시 값에 대응하고 상기 타겟 영역을 포함하는 복수의 영역들에 대응하고, 상기 제2 액세스 횟수는, 상기 복수의 불휘발성 메모리 장치들에 걸쳐 형성되고 상기 타겟 영역을 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은 복수의 불휘발성 메모리 장치들을 포함하는 저장 매체의 타겟 영역을 액세스하는 단계, 제1 단위의 영역들이 그룹핑된 제1 그룹들 중 상기 타겟 영역을 포함하는 제1 그룹에 대응하는 제1 액세스 횟수를 업데이트하는 단계 및 제2 단위의 영역들이 그룹핑된 제2 그룹들 중 상기 타겟 영역을 포함하는 제2 그룹에 대응하는 제2 액세스 횟수를 업데이트하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 향상된 데이터 신뢰성을 제공할 수 있다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치를 예시적으로 도시한 블록도,
도2는 도1에 도시된 불휘발성 메모리 장치를 세부적으로 도시한 블록도,
도3a는 도2에 도시된 페이지들과 워드 라인들의 대응 관계를 도시한 도면,
도3b는 도2에 도시된 페이지들과 워드 라인들의 또 다른 대응 관계를 도시한 도면,
도4는 도1에 도시된 해싱부의 동작 방법을 예시적으로 설명하기 위한 도면,
도5는 도1에 도시된 데이터 저장 장치의 동작 방법을 예시적으로 설명하기 위한 순서도,
도6은 도1에 도시된 프로세서가 신뢰성 유지 동작을 수행하는 방법을 예시적으로 설명하기 위한 순서도,
도7은 도1에 도시된 프로세서가 인접 영역에 대해 데이터 점검 동작을 수행하는 방법을 예시적으로 설명하기 위한 순서도,
도8 및 도9는 도1에 도시된 프로세서가 신뢰성 유지 동작을 수행하는 방법을 예시적으로 설명하기 위한 도면,
도10은 본 발명의 다른 실시 예에 따른 데이터 저장 장치를 예시적으로 도시한 블록도,
도11은 도10에 도시된 제1 해싱부 및 제2 해싱부의 동작 방법을 예시적으로 설명하기 위한 도면,
도12는 도10에 도시된 프로세서가 신뢰성 유지 동작을 수행하는 방법을 예시적으로 설명하기 위한 도면,
도13은 본 발명의 실시 예에 따른 데이터 저장 장치를 예시적으로 도시한 블록도,
도14는 도13에 도시된 프로세서의 액세스 횟수 테이블의 액세스 횟수들의 초기화 방법을 예시적으로 설명하기 위한 순서도,
도15는 본 발명의 실시 예에 따른 데이터 저장 장치를 예시적으로 도시한 블록도,
도16은 도15에 도시된 프로세서의 신뢰성 유지 동작의 수행 방법을 예시적으로 설명하기 위한 순서도,
도17은 도15에 도시된 프로세서의 제2 액세스 횟수의 초기화 방법을 예시적으로 설명하기 위한 순서도이다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치(10)를 예시적으로 도시한 블록도이다.
데이터 저장 장치(10)는 외부 장치(미도시)의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 데이터 저장 장치(10)는 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다. 데이터 저장 장치(10)는 PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick), 다양한 멀티 미디어(Multi Media) 카드(MMC, eMMC, RS-MMC, MMC-micro), SD(Secure Digital) 카드(SD, Mini-SD, Micro-SD), UFS(Universal Flash Storage) 또는 솔리드 스테이트 드라이브(Solid State Drive) 등으로 구성될 수 있다.
데이터 저장 장치(10)는 컨트롤러(100) 및 불휘발성 메모리 장치(200)를 포함할 수 있다.
컨트롤러(100)는 프로세서(110), 메모리(120) 및 ECC(Error Correction Code) 유닛(130)을 포함할 수 있다.
프로세서(110)는 데이터 저장 장치(10)의 제반 동작을 제어할 수 있다. 프로세서(110)는 불휘발성 메모리 장치(200)의 타겟 영역을 액세스하기 위해 액세스 커맨드, 예를 들어, 라이트 커맨드 또는 리드 커맨드를 생성하고, 생성된 액세스 커맨드를 불휘발성 메모리 장치(200)로 제공할 수 있다. 프로세서(110)는 메모리(120) 상에서 데이터 저장 장치(10)의 동작을 제어하기 위한 소프트웨어 프로그램을 구동할 수 있다.
프로세서(110)는 신뢰성 유지 동작을 수행할 수 있다. 신뢰성 유지 동작은 불휘발성 메모리 장치(200)의 일정 영역을 과도하게 액세스함으로써 일정 영역에 인접한 인접 영역에 저장된 데이터가 변형 또는 손실되는 것을 방지하기 위해서 수행될 수 있다. 신뢰성 유지 동작은 액세스 횟수 테이블(125)의 관리를 바탕으로 데이터 점검 동작을 수행함으로써 수행될 수 있다. 프로세서(110)는, 예를 들어, 리드 커맨드를 통해 불휘발성 메모리 장치(200)를 액세스할 때마다 신뢰성 유지 동작을 수행할 수 있다.
프로세서(110)는 메모리(120) 상에서 액세스 횟수 테이블(125)을 관리할 수 있다. 액세스 횟수 테이블(125)은 불휘발성 메모리 장치(200)의 일정 영역이 얼마나 액세스되었는지를 나타내는 액세스 횟수를 포함할 수 있다. 프로세서(110)는 불휘발성 메모리 장치(200)를 액세스할 때마다, 불휘발성 메모리 장치(200)의 타겟 영역에 대응하는 해시 값을 산출하고, 액세스 횟수 테이블(125)에서 산출된 해시 값으로 인덱싱된 액세스 횟수를 업데이트할 수 있다.
프로세서는 해싱부(115)를 포함할 수 있다. 해싱부(115)는 타겟 영역의 어드레스(ADD_T)에 근거하여 타겟 영역에 대응하는 해시 값(HV)을 산출할 수 있다. 해싱부(115)는 해시 함수에 근거하여 타겟 영역의 어드레스(ADD_T)를 해시 값(HV)으로 해싱할 수 있다. 예시적으로, 해싱부(115)는 디지털 회로, 아날로그 회로, 또는 디지털 및 아날로그 회로의 조합과 같은 하드웨어로 구현될 수 있다. 다른 예로서, 해싱부(115)는 펌웨어 등과 같은 소프트웨어로 구현될 수 있다. 다른 예로서, 해싱부(115)는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있다.
프로세서(110)는 메모리(120)의 용량을 효율적으로 사용하기 위해서, 불휘발성 메모리 장치(200)의 복수의 영역들의 액세스 횟수를 통합적으로 관리할 수 있다. 프로세서(110)는, 액세스 횟수가 통합적으로 관리되는 복수의 영역들 중 어느 하나가 액세스되는 경우, 해당 액세스 횟수를 업데이트할 수 있다. 즉, 복수의 영역들에 대해 통합적으로 관리되는 액세스 횟수는 복수의 영역들 각각이 액세스된 횟수를 모두 더한 값일 수 있다.
프로세서(110)는 액세스 횟수가 통합적으로 관리되는 복수의 영역들을 공통의 해시 값에 대응시킬 수 있다. 해싱부(115)는 해시 함수에 근거하여 복수의 영역들 각각의 어드레스를 공통의 해시 값으로 해싱할 수 있다. 복수의 영역들에 대해 통합적으로 관리되는 액세스 횟수는 공통의 해시 값으로 인덱싱될 수 있다. 정리하면, 프로세서(110)는, 액세스 횟수가 통합적으로 관리되는 복수의 영역들 중 어느 하나가 액세스되는 경우, 액세스된 영역의 어드레스에 근거하여 복수의 영역들에 대응하는 공통의 해시 값을 산출하고 산출된 해시 값으로 인덱싱된 액세스 횟수를 업데이트할 수 있다.
액세스 횟수가 통합적으로 관리되는 복수의 영역들은 서로 다른 워드 라인들에 대응할 수 있다. 액세스 횟수가 통합적으로 관리되는 복수의 영역들은 복수의 페이지들일 수 있다.
프로세서(110)는 액세스 횟수 테이블(125)에 근거하여 불휘발성 메모리 장치(200)의 일정 영역을 과도하게 액세스한 것으로 판단되는 경우, 일정 영역의 인접 영역에 대해 데이터 점검 동작을 수행할 수 있다. 데이터 점검 동작은 인접 영역에 저장된 데이터의 변형 정도를 체크하고, 데이터의 변형 정도에 따라 인접 영역에 저장된 데이터를 변형되기 전의 상태로 복구시키기 위한 리클레임 동작을 선택적으로 수행함으로써 수행될 수 있다.
메모리(120)는 프로세서(110)의 동작 메모리, 버퍼 메모리 또는 캐시 메모리 등의 기능을 수행할 수 있다. 메모리(120)는 프로세서(110)에 의해 구동되는 소프트웨어 프로그램 및 각종 프로그램 데이터를 저장하거나, 외부 장치 및 불휘발성 메모리 장치(200) 간에 전송되는 데이터를 버퍼링하거나 또는 캐시 데이터를 임시 저장할 수 있다.
메모리(120)는 프로세서(110)에 의해 관리되는 액세스 횟수 테이블(125)을 저장할 수 있다. 상술한 바와 같이, 프로세서(110)가 불휘발성 메모리 장치(200)의 복수의 영역들의 액세스 횟수를 통합적으로 관리하는 경우, 메모리(120)의 한정된 영역은 효율적으로 사용될 수 있다. 만일, 프로세서(110)가 복수의 영역들의 액세스 횟수를 통합적으로 관리하지 않고 복수의 영역들 각각의 액세스 횟수를 개별적으로 관리한다면, 복수의 영역들의 총 개수만큼의 액세스 횟수들이 메모리(120)를 차지할 것이다. 액세스 횟수 테이블(125)은 불휘발성 메모리 장치(200)에 백업될 수 있다.
ECC 유닛(130)은 데이터가 불휘발성 메모리 장치(200)로 라이트되기 전에, 추후 데이터의 리드 시 에러 발생 여부를 판단하고 발생된 에러를 정정할 수 있도록, 라이트될 데이터를 인코딩할 수 있다. 예를 들어, ECC 유닛(130)은 불휘발성 메모리 장치(200)에 라이트될 데이터에 대한 패리티 데이터를 생성하고, 생성된 패리티 데이터를 라이트될 데이터에 부가함으로써, 라이트될 데이터를 인코딩할 수 있다.
ECC 유닛(130)은 인코딩된 데이터가 불휘발성 메모리 장치(200)로부터 리드되면, 리드된 데이터를 디코딩, 즉, 리드된 데이터에 대한 에러 정정 동작을 수행할 수 있다. 예를 들어, ECC 유닛(130)은 리드된 데이터에 포함된 패리티 데이터를 참조하여, 리드된 데이터에 발생된 에러를 검출하고 검출된 에러를 정정함으로써 에러 정정 동작을 수행할 수 있다.
ECC 유닛(130)은, 과도하게 액세스된 일정 영역의 인접 영역에 대해 데이터 점검 동작이 수행될 때, 해당 인접 영역으로부터 리드된 데이터의 변형 정도를 체크할 수 있다. 예를 들어, ECC 유닛(130)은 인접 영역으로부터 리드된 데이터에 발생된 에러를 검출함으로써 에러 발생률을 체크할 수 있다. ECC 유닛(130)은, 프로세서(110)가 인접 영역에 저장된 데이터를 변형되기 전의 상태로 복구시키기 위한 리클레임 동작의 수행이 필요한지 여부를 판단할 수 있도록, 인접 영역으로부터 리드된 데이터의 에러 발생률을 프로세서(110)로 보고할 수 있다.
불휘발성 메모리 장치(200)는 컨트롤러(100)의 제어 하에 데이터를 저장할 수 있다. 불휘발성 메모리 장치(200)는 액세스 커맨드에 대응하는 타겟 영역을 액세스할 수 있다.
도2는 도1에 도시된 불휘발성 메모리 장치(200)를 세부적으로 도시한 블록도이다.
불휘발성 메모리 장치(200)는 제어 로직(210), 인터페이스부 (220), 어드레스 디코더(230), 데이터 입출력부(240) 및 메모리 셀 어레이(250)를 포함할 수 있다.
제어 로직(210)은 불휘발성 메모리 장치(200)의 제반 동작을 제어할 수 있다. 제어 로직(210)은 컨트롤러(100)로부터 제공된 액세스 커맨드, 예를 들어, 라이트, 리드 또는 소거 커맨드에 응답하여 메모리 셀 어레이(250)에 대한 라이트, 리드 또는 소거 동작을 제어할 수 있다.
인터페이스부(220)는 컨트롤러(100)와 액세스 커맨드를 포함한 각종 제어 신호들 및 데이터를 주고 받을 수 있다. 인터페이스부(220)는 입력된 각종 제어 신호들 및 데이터를 불휘발성 메모리 장치(200)의 내부 유닛들로 전송할 수 있다.
어드레스 디코더(230)는 액세스 커맨드에 포함된 로우 어드레스 및 컬럼 어드레스를 디코딩할 수 있다. 어드레스 디코더(230)는 로우 어드레스의 디코딩 결과에 따라 워드 라인들(WL)이 선택적으로 구동되도록 제어할 수 있다. 어드레스 디코더(230)는 컬럼 어드레스의 디코딩 결과에 따라 비트 라인들(BL)이 선택적으로 구동되도록 데이터 입출력부(240)를 제어할 수 있다.
데이터 입출력부(240)는 인터페이스부(220)로부터 전송된 데이터를 비트 라인들(BL)을 통해 메모리 셀 어레이(250)로 전송할 수 있다. 데이터 입출력부(240)는 메모리 셀 어레이(250)로부터 비트 라인들(BL)을 통해 리드된 데이터를 인터페이스부(220)로 전송할 수 있다.
메모리 셀 어레이(250)는 워드 라인들(WL)과 비트 라인들(BL)이 교차하는 영역에 각각 배치된 복수의 메모리 셀들(미도시)을 포함할 수 있다. 메모리 셀들은 셀 당 저장되는 데이터 비트 수에 따라 구별될 수 있다. 예를 들어, 메모리 셀들은 셀 당 1비트를 저장하는 싱글 레벨 셀과 셀 당 적어도 2비트들을 저장하는 멀티 레벨 셀로 구별될 수 있다.
메모리 셀 어레이(250)는 동작 단위에 따라 구분되는 복수의 저장 영역들을 포함할 수 있다. 예를 들어, 메모리 셀 어레이(250)는 제1 내지 제8 페이지들(P1~P8)을 포함할 수 있다. 도2의 메모리 셀 어레이(250)는 8개의 페이지들을 포함하는 것으로 도시되지만, 메모리 셀 어레이(250)에 포함된 페이지들의 개수는 이에 제한되지 않는다.
페이지는 메모리 셀 어레이(250)에 대해 라이트 동작 또는 리드 동작이 수행되는 단위일 수 있다. 다른 말로 하면, 메모리 셀 어레이(250)는 페이지 단위로 액세스될 수 있다. 페이지는 대응하는 어드레스를 부여받고, 어드레스에 따라 액세스될 수 있다. 페이지는 대응하는 워드 라인을 구동함으로써 액세스될 수 있다.
도3a는 도2에 도시된 페이지들(P1~P8)과 워드 라인들(WL1~WL8)의 대응 관계를 도시한 도면이다.
도3a를 참조하면, 1개의 워드 라인은 1개의 페이지와 대응할 수 있다. 메모리 셀 어레이(250)에 포함된 제1 내지 제8 페이지들(P1~P8) 각각은 제1 내지 제8 워드 라인들(WL1~WL8) 각각에 대응할 수 있다. 1개의 워드 라인이 1개의 페이지와 대응할 때, 워드 라인에 연결된 메모리 셀들은 싱글 레벨 셀들일 수 있다.
상술한 바와 같이, 신뢰성 유지 동작에서, 타겟 영역에 대응하는 액세스 횟수가 업데이트되고, 인접 영역에 대해 데이터 점검 동작이 수행될 수 있다. 이때, 타겟 영역과 인접 영역은 인접한 워드 라인들 각각에 대응될 수 있다. 1개의 워드 라인이 1개의 페이지와 대응할 때, 타겟 영역이, 예를 들어, 제3 페이지(P3)일 때 인접 영역은 제2 및 제4 페이지(P2, P4)일 수 있다.
도3b는 도2에 도시된 페이지들(P1~P8)과 워드 라인들(WL1~WL4)의 또 다른 대응 관계를 도시한 도면이다.
도3b를 참조하면, 1개의 워드 라인은 2개의 페이지들과 대응할 수 있다. 메모리 셀 어레이(250)에 포함된 제1 및 제2 페이지들(P1, P2)은 제1 워드 라인(WL1)에 대응하고, 제3 및 제4 페이지들(P3, P4)은 제2 워드 라인(WL2)에 대응하고, 제5 및 제6 페이지들(P5, P6)은 제3 워드 라인(WL3)에 대응하고, 제7 및 제8 페이지들(P7, P8)은 제4 워드 라인(WL4)에 대응할 수 있다. 1개의 워드 라인이 2개의 페이지들과 대응할 때 워드 라인에 연결된 메모리 셀들은 멀티 레벨 셀들일 수 있다.
상술한 바와 같이, 신뢰성 유지 동작에서, 타겟 영역에 대응하는 액세스 횟수가 업데이트되고, 인접 영역에 대해 데이터 점검 동작이 수행될 수 있다. 이때, 타겟 영역과 인접 영역은 인접한 워드 라인들 각각에 대응될 수 있다. 1개의 워드 라인이 2개의 페이지들과 대응할 때, 타겟 영역이, 예를 들어, 제3 페이지(P3)일 때 인접 영역은 제1, 제2, 제5 및 제6 페이지(P1, P2, P5, P6)일 것이다.
도4는 도1에 도시된 해싱부(115)가 액세스 커맨드에 의해 액세스된 타겟 영역에 대응하는 해시 값(HV)을 산출하는 방법을 예시적으로 설명하기 위한 도면이다. 도4를 참조하면, 해시 값들(HV)로 인덱싱된 액세스 횟수 테이블(125)이 함께 도시된다.
해싱부(115)는 제1 내지 제8 페이지들(도2의 P1~P8) 각각에 대응하는 해시 값(HV)을 산출할 수 있다. 해싱부(115)는 해시 함수에 근거하여 제1 내지 제8 페이지들(P1~P8) 각각의 어드레스(ADD)를 대응하는 해시 값(HV)으로 해싱할 수 있다. 예를 들어, 액세스 커맨드에 의해 액세스된 타겟 영역이 제1 페이지(P1)인 경우, 해싱부(115)는 제1 페이지의 어드레스(ADD_P1)를 해시 값 '2'로 해싱할 수 있다.
상술한 바와 같이, 프로세서(110)는 복수의 페이지들의 액세스 횟수를 통합적으로 관리할 수 있고, 이를 위해서, 해싱부(115)는 복수의 페이지들의 어드레스들을 공통의 해시 값으로 해싱할 수 있다. 공통의 해시 값으로 해싱되는 복수의 페이지들은 해시 함수에 의해 결정될 수 있다.
해싱부(115)는, 액세스 횟수가 통합적으로 관리되는 복수의 페이지들 중 어느 하나가 액세스되는 경우, 대응하는 공통의 해시 값을 산출할 수 있다. 산출된 공통의 해시 값은 복수의 페이지들에 대해 통합적으로 관리되는 액세스 횟수의 인덱스 값일 수 있다.
도4를 참조하면, 해싱부(115)는, 예를 들어, 제3 및 제8 페이지들의 어드레스들(ADD_P3, ADD_P8)을 공통의 해시 값 '1'로 해싱할 수 있다. 해싱부(115)는 제3 및 제8 페이지들(P3, P8) 중 어느 하나가 액세스되는 경우, 해시 값 '1'을 산출할 수 있다. 이러한 해싱은 프로세서(110)로 하여금 제3 및 제8 페이지들(P3, P8)의 액세스 횟수를 공통의 해시 값 '1'로 인덱싱시킴으로써 통합적으로 관리하도록 할 것이다.
도4에서, 해싱부(115)는 2개의 페이지들의 어드레스들을 공통의 해시 값으로 해싱하는 것으로 도시되나, 공통의 해시 값으로 해싱되는 페이지들의 개수는 이에 제한되는 것은 아니다. 본 발명의 실시 예에 따르면, 액세스 횟수가 통합적으로 관리되는 복수의 페이지들의 개수는 제한되지 않는다.
도5는 도1에 도시된 데이터 저장 장치(10)의 동작 방법을 예시적으로 설명하기 위한 순서도이다.
S110 단계에서, 프로세서(110)는 타겟 영역을 액세스하기 위한 액세스 커맨드를 생성할 수 있다. 예를 들어, 프로세서(110)는 타겟 영역으로부터 데이터를 리드하기 위한 리드 커맨드를 생성할 수 있다. 불휘발성 메모리 장치(200)는 프로세서(110)로부터 제공된 액세스 커맨드에 응답하여 타겟 영역을 액세스할 것이다.
S120 단계에서, 프로세서(110)는 신뢰성 유지 동작을 수행할 수 있다. 신뢰성 유지 동작은 액세스 횟수 테이블(125)의 관리를 바탕으로 데이터 점검 동작을 수행함으로써 수행될 수 있다.
프로세서(110)는 불휘발성 메모리 장치(200)를 액세스할 때마다 신뢰성 유지 동작을 수행할 수 있다. 프로세서(110)는, 예를 들어, 리드 커맨드를 통해 불휘발성 메모리 장치(200)를 액세스할 때마다 신뢰성 유지 동작을 수행할 수 있다.
도6은 도1에 도시된 프로세서(110)가 신뢰성 유지 동작을 수행하는 방법을 예시적으로 설명하기 위한 순서도이다. 도6에 도시된 절차는 도5의 S120 단계에 대응될 수 있다. 도6에 도시된 절차에 앞서, 프로세서(110)는 타겟 영역을 액세스하기 위한 액세스 커맨드를 생성한 것으로 가정한다.
S210 단계에서, 해싱부(115)는 타겟 영역에 대응하는 해시 값을 산출할 수 있다. 해싱부(115)는 해시 함수에 근거하여 타겟 영역의 어드레스를 대응하는 해시 값으로 해싱할 수 있다.
S220 단계에서, 프로세서(110)는 산출된 해시 값으로 인덱싱된 액세스 횟수를 증가시킬 수 있다.
S230 단계에서, 프로세서(110)는 업데이트된 액세스 횟수가 임계값에 도달했는지 여부를 판단할 수 있다. 액세스 횟수가 임계값에 도달한 것으로 판단되는 경우(예), 절차는 S240 단계로 진행될 수 있다. 액세스 횟수가 임계값에 도달하지 않은 것으로 판단되는 경우(아니오), 절차는 종료될 수 있다. 즉, 액세스 횟수가 임계값에 도달하지 않은 경우는. 타겟 영역이 아직 과도하게 액세스되지 않은 것을 암시하기에, 프로세서(110)는 신뢰성 유지 동작을 종료할 수 있다.
S240 단계에서, 프로세서(110)는 타겟 영역에 인접한 인접 영역에 대해 데이터 점검 동작을 수행할 수 있다. 데이터 점검 동작은 인접 영역에 저장된 데이터의 변형 정도를 체크하고, 데이터의 변형 정도에 따라 인접 영역에 저장된 데이터를 변형되기 전의 상태로 복구시키기 위한 리클레임 동작을 선택적으로 수행함으로써 수행될 수 있다.
S250 단계에서, 프로세서(110)는 S210 단계에서 산출된 해시 값으로 인덱싱된 액세스 횟수를 감소시킬 수 있다. S240 단계에서 데이터 점검 동작을 통해 인접 영역에 저장된 데이터가 점검되었으므로, 프로세서(110)는 인접 영역에 대한 후속 데이터 점검 동작을 지연시키기 위해서 타겟 영역에 대응하는 액세스 횟수를 감소시킬 수 있다.
상술한 바와 같이, 프로세서(110)는 타겟 영역을 비롯한 복수의 영역들의 액세스 횟수를 통합적으로 관리할 수 있다. 이러한 경우, S220 단계에서 증가된 액세스 횟수는 통합적으로 관리되는 복수의 영역들 중 타겟 영역 이외의 영역들에 대한 액세스에 의해서도 증가될 수 있다. 타겟 영역을 액세스함으로써 액세스 횟수가 임계 값에 비로소 도달하더라도, 그러한 결과는 타겟 영역 이외의 영역들에 대한 과도한 액세스에 기인한 것일 수 있다. 따라서, 프로세서(110)는 타겟 영역에 대응하는 액세스 횟수를 완전히 리셋하지 않고 설정 값으로 감소시킴으로써, 통합적으로 관리되는 복수의 영역들 타겟 영역 이외의 영역들에 대한 과도한 액세스의 가능성을 어느 정도 유지시킬 수 있다.
도7은 도1에 도시된 프로세서(110)가 인접 영역에 대해 데이터 점검 동작을 수행하는 방법을 예시적으로 설명하기 위한 순서도이다. 도7에 도시된 절차는 도6의 S240 단계에 대응될 수 있다.
S310 단계에서, 프로세서(110)는 타겟 영역에 인접한 인접 영역에 저장된 데이터를 리드할 수 있다.
S320 단계에서, ECC 유닛(130)은 인접 영역으로부터 리드된 데이터의 에러 발생률을 체크할 수 있다. ECC 유닛(130)은 프로세서(110)가 인접 영역에 대한 리클레임 동작의 수행이 필요한지 여부를 판단할 수 있도록, 에러 발생률을 프로세서(110)로 보고할 수 있다.
S330 단계에서, 프로세서(110)는 인접 영역으로부터 리드된 데이터의 에러 발생률에 근거하여 인접 영역에 대해 리클레임 동작을 수행할 필요가 있는지 여부를 결정할 수 있다. 예를 들어, 프로세서(110)는 에러 발생률과 임계값을 비교하고 에러 발생률이 임계값을 초과하는 경우 리클레임 동작을 수행할 필요가 있는 것으로 결정할 수 있다. 리클레임 동작이 수행될 필요가 있는 것으로 결정되는 경우(예), 절차는 S340 단계로 진행될 수 있다. 리클레임 동작이 수행될 필요가 없는 것으로 결정되는 경우(아니오), 절차는 종료될 수 있다.
S340 단계에서, 프로세서(110)는 인접 영역에 저장된 데이터를 변형되기 전의 상태로 복구시키기 위해 인접 영역에 대해 리클레임 동작을 수행할 수 있다. 예를 들어, 프로세서(110)는 가비지 컬렉션 동작을 통해서 리클레임 동작을 수행할 수 있다. 프로세서(110)는 인접 영역에 저장된 데이터를 다른 영역에 다시 저장함으로써 변형되기 전의 상태로 복구시킬 수 있다.
도8 및 도9는 도1에 도시된 프로세서(110)가 신뢰성 유지 동작을 수행하는 방법을 예시적으로 설명하기 위한 도면이다. 도8을 참조하면, 프로세서(110)가 신뢰성 유지 동작을 수행하는 과정, 예를 들어, 도6에서 좌측 화살표(A1)에 따른 절차가 도시된다. 도9를 참조하면, 프로세서(110)가 신뢰성 유지 동작을 수행하는 또 다른 과정, 예를 들어, 도6에서 우측 화살표(A2)에 따른 절차가 도시된다. 도8 및 도9에서 프로세서(110)는, 타겟 영역으로부터 인접 영역으로 미치는 리드 디스터번스 효과에 의한 데이터 변형 또는 손실를 방지하기 위해, 리드 커맨드를 통해 불휘발성 메모리 장치(200)를 액세스할 때마다 신뢰성 유지 동작을 수행하는 것으로 가정한다.
이하, 도4, 도6 및 도8을 참조하여 프로세서(110)가 신뢰성 유지 동작을 수행하는 방법이 상세하게 설명될 것이다. 도8에서, 프로세서(110)는 타겟 영역, 예를 들어, 제2 페이지(P2)에 대한 리드 커맨드를 생성하고, 제2 페이지(P2)를 리드한 것으로 가정한다.
해싱부(115)는 제2 페이지(P2)에 대응하는 해시 값(HV)을 산출할 수 있다(○1). 해싱부(115)는, 도4에 도시된 산출 방법에 따라, 해시 함수에 근거하여 제2 페이지(P2)의 어드레스(ADD_P2)를 해시 값 '3'으로 해싱할 수 있다.
프로세서(110)는 메모리(120) 상의 액세스 횟수 테이블(125)에서 산출된 해시 값 '3'으로 인덱싱된 액세스 횟수를 증가시킬 수 있다(○2).
프로세서(110)는 업데이트된 액세스 횟수가 임계값에 도달했는지 여부를 판단할 수 있다. 임계값이 100으로 설정된 경우, 프로세서(110)는 업데이트된 액세스 횟수가 아직 76이기 때문에 임계값에 도달하지 않은 것으로 판단할 수 있다. 프로세서(110)는 신뢰성 유지 동작을 종료할 수 있다.
다음으로, 도4, 도6 및 도9를 참조하여 프로세서(110)가 신뢰성 유지 동작을 수행하는 또 다른 방법이 상세하게 설명될 것이다. 도9에서, 프로세서(110)는 타겟 영역, 예를 들어, 제3 페이지(P3)에 대한 리드 커맨드를 생성하고, 제3 페이지(P3)를 리드한 것으로 가정한다.
해싱부(115)는 제3 페이지(P3)에 대응하는 해시 값(HV)을 산출할 수 있다(○1). 해싱부(115)는, 도4에 도시된 산출 방법에 따라, 해시 함수에 근거하여 제3 페이지의 어드레스(ADD_P3)를 해시 값 '1'로 해싱할 수 있다.
프로세서(110)는 메모리(120) 상의 액세스 횟수 테이블(125)에서 산출된 해시 값 '1'로 인덱싱된 액세스 횟수를 증가시킬 수 있다(○2).
프로세서(110)는 업데이트된 액세스 횟수가 임계값에 도달했는지 여부를 판단할 수 있다. 임계값이 100으로 설정된 경우, 프로세서(110)는 업데이트된 액세스 횟수가 100이기 때문에 임계값에 도달한 것으로 판단할 수 있다.
프로세서(110)는 인접 영역에 대해 데이터 점검 동작을 수행할 수 있다(○3). 도3a에서 도시된 바와 같이 1개의 워드 라인에 1개의 페이지가 대응될 때, 프로세서(110)는 제2 및 제4 페이지들(P2, P4)에 대해 데이터 점검 동작을 수행할 수 있다.
프로세서(110)는 인접 영역에 대해 데이터 점검 동작을 수행한 뒤 액세스 횟수 테이블(125)에서 해시 값 '1'로 인덱싱된 액세스 횟수를 감소시킬 수 있다(○4). 데이터 점검 동작을 통해 제2 및 제4 페이지들(P2, P4)에 저장된 데이터가 점검되었으므로, 프로세서(110)는 제2 및 제4 페이지들(P2, P4)에 대한 후속 데이터 점검 동작을 지연시키기 위해서 액세스 횟수를 감소시킬 수 있다. 다만, 해시 값 '1'로 인덱싱된 액세스 횟수는, 도4를 참조하면, 제3 및 제8 페이지들(P3, P8)에 대해 통합적으로 관리되는 액세스 횟수이기 때문에 프로세서(110)는 해시 값 '1'로 인덱싱된 액세스 횟수를 설정 값, 예를 들어, 70으로 감소시킬 수 있다. 즉, 프로세서(110)는 제3 페이지(P3)가 아닌 제8 페이지(P8)에 대한 과도한 액세스의 가능성을 어느 정도 유지시키기 위해, 해시 값 '1'로 인덱싱된 액세스 횟수를 완전히 리셋하지 않을 수 있다.
도10은 본 발명의 다른 실시 예에 따른 데이터 저장 장치(20)를 예시적으로 도시한 블록도이다. 도10에 있어서, 도1에서 설명된 데이터 저장 장치(10)의 구성 요소와 실질적으로 동일한 구성 요소에 대해서는 도1과 동일한 참조 부호가 사용될 것이고, 해당 구성 요소에 대한 상세한 설명은 생략될 것이다.
데이터 저장 장치(20)는 컨트롤러(300)가 제1 해싱부(315) 및 제2 해싱부(317)를 포함하는 것을 제외하고 도1에 도시된 데이터 저장 장치(10)와 실질적으로 유사하게 구성되고 동작할 수 있다.
프로세서(310)는 액세스 횟수 테이블(325)을 관리할 수 있다. 프로세서(310)는 액세스 커맨드를 통해 불휘발성 메모리 장치(200)를 액세스할 때마다, 불휘발성 메모리 장치(200)의 타겟 영역에 대응하는 복수의 해시 값들, 예를 들어, 제1 해시 값(HV1) 및 제2 해시 값(HV2)을 산출하고, 액세스 횟수 테이블(325)에서 산출된 제1 해시 값(HV1)으로 인덱싱된 액세스 횟수 및 제2 해시 값(HV2)으로 인덱싱된 액세스 횟수를 모두 업데이트할 수 있다.
프로세서(310)는 제1 해싱부(315) 및 제2 해싱부(317)를 포함할 수 있다. 제1 해싱부(315) 및 제2 해싱부(317) 각각은 도1의 해싱부(115)와 실질적으로 유사하게 구성되고 동작할 수 있다. 제1 해싱부(315) 및 제2 해싱부(317)는 타겟 영역에 대응하는 서로 다른 해시 값들을 각각 산출할 수 있다. 제1 해싱부(315)는 제1 해시 함수에 근거하여 타겟 영역의 어드레스(ADD_T)를 제1 해시 값(HV1)으로 해싱할 수 있다. 제2 해싱부(317)는 제2 해시 함수에 근거하여 타겟 영역의 어드레스(ADD_T)를 제2 해시 값(HV2)으로 해싱할 수 있다.
도10에서 프로세서(310)는 2개의 해싱부를 포함하는 것으로 도시되나, 포함되는 해싱부의 개수는 이에 제한되는 것은 아니다. 실시 예에 따라, 프로세서(310)에 포함되는 해싱부들의 개수만큼 타겟 영역에 대응하는 서로 다른 해시 값들이 산출될 수 있고, 프로세서(310)는 산출된 해시 값들 각각으로 인덱싱된 액세스 횟수들을 모두 업데이트할 수 있다.
도11은 도10에 도시된 제1 해싱부(315) 및 제2 해싱부(317)가 액세스 커맨드에 의해 액세스된 타겟 영역에 대응하는 서로 다른 해시 값들(HV), 즉, 제1 해시 값(HV1) 및 제2 해시 값(HV2)을 각각 산출하는 방법을 예시적으로 설명하기 위한 도면이다. 도11을 참조하면, 해시 값들(HV)로 인덱싱된 액세스 횟수 테이블(325)이 함께 도시된다.
제1 해싱부(315) 및 제2 해싱부(317)는 제1 내지 제8 페이지들(P1~P8) 각각에 대응하는 제1 해시 값(HV1) 및 제2 해시 값(HV2)을 산출할 수 있다. 제1 해싱부(315)는 제1 해시 함수에 근거하여 제1 내지 제8 페이지들(P1~P8) 각각의 어드레스(ADD)를 대응하는 제1 해시 값(HV1)으로 해싱할 수 있다. 제2 해싱부(317)는 제2 해시 함수에 근거하여 제1 내지 제8 페이지들(P1~P8) 각각의 어드레스(ADD)를 대응하는 제2 해시 값(HV2)으로 해싱할 수 있다. 예를 들어, 액세스 커맨드에 의해 액세스된 타겟 영역이 제3 페이지(P3)인 경우, 제1 해싱부(315)는 제3 페이지(P3)의 어드레스(ADD_P3)를 제1 해시 값 '1'로 해싱하고, 제2 해싱부(317)는 제3 페이지(P3)의 어드레스(ADD_P3)를 제2 해시 값 '3'으로 해싱할 수 있다.
프로세서(310)가 제1 해싱부(315)에 의해 제1 해시 값(HV1)만을 산출하는 것으로 가정하면, 제1 해시 값(HV1)으로 인덱싱된 제1 액세스 횟수 테이블(325_1)을 관리할 것이다. 마찬가지로, 프로세서(310)가 제2 해싱부(317)에 의해 제2 해시 값(HV2)만을 산출하는 것으로 가정하면, 제2 해시 값(HV2)으로 인덱싱된 제2 액세스 횟수 테이블(325_2)을 관리할 것이다. 프로세서(310)는 제1 해싱부(315) 및 제2 해싱부(317)에 의해 제1 해시 값(HV1) 및 제2 해시 값(HV2)을 산출함에 따라, 제1 액세스 횟수 테이블(325_1)과 제2 액세스 횟수 테이블(325_2)이 통합된 액세스 횟수 테이블(325)을 관리할 수 있다.
도12는 도10에 도시된 프로세서(310)가 신뢰성 유지 동작을 수행하는 방법을 예시적으로 설명하기 위한 도면이다. 도12에서 프로세서(310)는, 타겟 영역으로부터 인접 영역으로 미치는 리드 디스터번스 효과에 의한 데이터 변형 또는 손실를 방지하기 위해, 리드 커맨드를 통해 불휘발성 메모리 장치(200)를 액세스할 때마다 신뢰성 유지 동작을 수행하는 것으로 가정한다.
이하, 도10 내지 도 12를 참조하여 프로세서(310)가 신뢰성 유지 동작을 수행하는 방법이 상세하게 설명될 것이다. 도12에서, 프로세서(310)는 타겟 영역, 예를 들어, 제3 페이지(P3)에 대한 리드 커맨드를 생성하고, 제3 페이지(P3)를 리드한 것으로 가정한다.
제1 해싱부(315) 및 제2 해싱부(317)는 제3 페이지(P3)에 대응하는 제1 해시 값(HV1) 및 제2 해시 값(HV2)을 각각 산출할 수 있다(○1). 제1 해싱부(315)는 도11에 도시된 산출 방법에 따라, 제1 해시 함수에 근거하여 제3 페이지(P3)의 어드레스(ADD_P3)를 제1 해시 값 '1'로 해싱할 수 있다. 제2 해싱부(317)는 도11에 도시된 산출 방법에 따라, 제2 해시 함수에 근거하여 제3 페이지(P3)의 어드레스(ADD_P3)를 제2 해시 값 '3'으로 해싱할 수 있다.
프로세서(310)는 메모리(120) 상의 액세스 횟수 테이블(325)에서 산출된 제1 해시 값 '1'로 인덱싱된 액세스 횟수를 49에서 50으로 증가시키고, 제2 해시 값 '3'으로 인덱싱된 액세스 횟수를 30에서 31로 증가시킬 수 있다(○2).
프로세서(310)는 업데이트된 액세스 횟수들 중 적어도 하나가 임계값에 도달했는지 여부를 판단할 수 있다. 임계값이 50으로 설정된 경우, 프로세서(110)는 해시 값 '1'로 인덱싱된 액세스 횟수가 임계값에 도달한 것으로 판단할 수 있다.
프로세서(310)는 인접 영역에 대해 데이터 점검 동작을 수행할 수 있다(○3). 1개의 워드 라인에 1개의 페이지가 대응될 때, 프로세서(310)는 제2 및 제4 페이지들(P2, P4)에 대해 데이터 점검 동작을 수행할 수 있다.
프로세서(310)는 인접 영역에 대해 데이터 점검 동작을 수행한 뒤 액세스 횟수 테이블(325)에서 해시 값 '1'로 인덱싱된 액세스 횟수를 감소시킬 수 있다(○4). 데이터 점검 동작을 통해 제2 및 제4 페이지들(P2, P4)에 저장된 데이터가 점검되었으므로, 프로세서(310)는 제2 및 제4 페이지들(P2, P4)에 대한 후속 데이터 점검 동작을 지연시키기 위해서 액세스 횟수를 감소시킬 수 있다. 다만, 해시 값 '1'로 인덱싱된 액세스 횟수는, 도11을 참조하면, 제1, 제3, 제5 및 제8 페이지들(P1, P3, P5, P8)에 대해 통합적으로 관리되는 액세스 횟수이기 때문에, 프로세서(310)는 해시 값 '1'로 인덱싱된 액세스 횟수를 설정 값, 예를 들어, 25로 감소시킬 수 있다. 즉, 프로세서(310)는 제3 페이지(P3)가 아닌 나머지 제1, 제5 및 제8 페이지들(P1, P5, P8)에 대한 과도한 액세스의 가능성을 어느 정도 유지시키기 위해, 해시 값 '1'로 인덱싱된 액세스 횟수를 완전히 리셋하지 않을 수 있다.
도12를 계속 참조하면, 도10의 데이터 저장 장치(20)는 아래와 같은 상황에서 도1의 데이터 저장 장치(10)에 비해 효과적일 수 있다. 예를 들어, 도12에서 제3 페이지(P3)가 액세스되기 전에 제8 페이지(P8)가 과도하게 액세스된 것으로 가정한다. 제8 페이지(P8)는 제1 해싱부(315)에 의해 제1 해시 값 '1'에 대응하고, 제2 해싱부(317)에 의해 제2 해시 값 '4'에 대응할 수 있다. 따라서, 제1 해시 값 '1' 및 제2 해시 값 '4'로 인덱싱된 액세스 횟수들이 모두 임계값에 가깝게, 예를 들어, 각각 49 및 48까지 증가될 수 있다. 이러한 상태에서, 제3 페이지(P3)에 대한 액세스 결과, 제1 해시 값 '1'로 인덱싱된 액세스 횟수가 비로소 임계값 50에 도달하고, 이어서 25로 감소될 수 있다. 그럼에도 불구하고, 해시 값 '4'로 인덱싱된 액세스 횟수는 48로 그대로 유지되기 때문에, 제8 페이지의 인접 영역에 대한 데이터 점검 동작 수행의 기회가 보다 빠른 시간 이내에 주어질 수 있고, 따라서, 데이터 신뢰성이 더욱 보장될 수 있을 것이다.
도13은 본 발명의 실시 예에 따른 데이터 저장 장치(30)를 예시적으로 도시한 블록도이다. 도13에 있어서, 도1에서 설명된 데이터 저장 장치(10)의 구성 요소와 실질적으로 동일한 구성 요소에 대해서는 도1과 동일한 참조 부호가 사용될 것이고, 해당 구성 요소에 대한 상세한 설명은 생략될 것이다.
데이터 저장 장치는 컨트롤러(400) 및 불휘발성 메모리 장치(200)를 포함할 수 있다.
프로세서(410)는 액세스 요청, 예를 들어, 리드 요청에 근거하여, 불휘발성 메모리 장치(200)의 타겟 영역에 대응하는 액세스 횟수를 업데이트할 뿐만 아니라, 액세스 요청 횟수를 업데이트할 수 있다. 프로세서(410)는 타겟 영역을 구분하지 않고, 데이터 저장 장치(30)로 전송된 액세스 요청에 대해 액세스 요청 횟수를 업데이트할 수 있다. 도1의 프로세서(110)와 달리, 프로세서(410)는 액세스 요청 관리부(420)를 더 포함할 수 있다.
액세스 요청 관리부(420)는 외부 장치로부터 제공된 액세스 요청, 예를 들어, 리드 요청에 근거하여, 액세스 요청 횟수를 업데이트할 수 있다. 액세스 요청 관리부(420)는 내부의 레지스터 또는 메모리(120)에 액세스 요청 횟수를 저장할 수 있다.
액세스 요청 관리부(420)는 액세스 요청된 데이터의 크기에 따라 액세스 요청 횟수를 1이상 증가시킬 수 있다. 예를 들어, 액세스 요청 관리부(420)는 불휘발성 메모리 장치(200)에 대해 라이트 동작 또는 리드 동작을 한번에 수행할 수 있는 데이터의 최대 크기(Y)에 대한, 액세스 요청된 데이터의 크기(X)의 비보다 작지 않은 최소의 정수(N)만큼 액세스 요청 횟수를 증가시킬 수 있다. 액세스 요청 관리부(420)가 액세스 요청 횟수를 증가시키는 값(UPDATE)을 식으로 정리하면 아래와 같다.
UPDATE = N, 단, N-1<(X/Y)≤N 이고, N은 정수.
예를 들어, 불휘발성 메모리 장치(200)에 대해 라이트 동작 또는 리드 동작을 한번에 수행할 수 있는 최대 데이터의 크기 단위가 32Kbyte라면, 액세스 요청 관리부(420)는 액세스 요청된 데이터의 크기가 16Kbyte일 때 액세스 요청 횟수를 1만큼 증가시키고, 액세스 요청된 데이터의 크기가 64Kbyte일 때 액세스 요청 횟수를 2만큼 증가시키고, 액세스 요청된 데이터의 크기가 80Kbyte일 때 액세스 요청 횟수를 3만큼 증가시킬 수 있다.
프로세서(410)는 액세스 요청 횟수가 초기화 임계 값에 도달할 때마다, 액세스 횟수 테이블(125)에서 모든 액세스 횟수들을 완전히 리셋, 즉, 초기화할 수 있다.
프로세서(410)는, 드물게 액세스됨에 따라 데이터의 변형이 크게 염려되지 않는 영역을 액세스할 때도 해당 영역에 대응하는 액세스 횟수를 증가시킬 수 있다. 이와 같은 증가 효과는, 프로세서(410)가 데이터 점검 동작을 수행한 뒤 액세스 횟수를 차감 값만큼 감소시키는 과정을 수 차례 반복하는 동안, 누적될 수 있다. 이렇게 누적된 효과는, 불필요한 데이터 점검 동작을 유발할 수 있고, 데이터 저장 장치(30)의 성능을 악화시킬 수 있다. 그러나, 본 발명의 실시 예에 따르면, 프로세서(410)는, 액세스 요청 횟수가 초기화 임계 값에 도달한 경우, 액세스 횟수 테이블(125)의 모든 액세스 횟수들을 초기화함에 따라 상술된 누적된 효과를 제거시킴으로써 데이터 저장 장치(30)의 성능 향상에 기여할 수 있다.
액세스 요청 관리부(420)는 액세스 요청 횟수가 초기화 임계 값에 도달하면, 액세스 요청 횟수를 0으로 초기화하고, 새롭게 카운트를 시작할 수 있다.
도14는 도13에 도시된 프로세서(410)의 액세스 횟수 테이블(125)의 액세스 횟수들의 초기화 방법을 예시적으로 설명하기 위한 순서도이다.
S410 단계에서, 프로세서(410)는 외부 장치로부터 액세스 요청, 예를 들어, 리드 요청을 수신할 수 있다. 한편, 프로세서(410)는 액세스 요청에 근거하여, 도6에 도시된 바와 같이, 신뢰성 유지 동작을 수행할 것이다.
S420 단계에서, 프로세서(410)는 액세스 요청에 근거하여, 액세스 요청 횟수를 업데이트할 수 있다. 프로세서(410)는 액세스 요청된 데이터의 크기에 따라 액세스 요청 횟수를 1이상 증가시킬 수 있다.
S430 단계에서, 프로세서(410)는, 액세스 요청 횟수가 초기화 임계 값에 도달했는지를 판단할 수 있다. 액세스 요청 횟수가 초기화 임계 값에 도달한 것으로 판단되는 경우, 절차는 S440 단계로 진행될 수 있다. 액세스 요청 횟수가 초기화 임계 값에 도달하지 않은 것으로 판단되는 경우, 절차는 종료될 수 있다.
S440 단계에서, 프로세서(410)는 액세스 요청 횟수 및 액세스 횟수 테이블(125)의 모든 액세스 횟수들을 초기화할 수 있다.
도15는 본 발명의 실시 예에 따른 데이터 저장 장치(40)를 예시적으로 도시한 블록도이다. 도15에 있어서, 도1에서 설명된 데이터 저장 장치(10)의 구성 요소와 실질적으로 동일한 구성 요소에 대해서는 도1과 동일한 참조 부호가 사용될 것이고, 해당 구성 요소에 대한 상세한 설명은 생략될 것이다.
데이터 저장 장치(40)는 컨트롤러(500) 및 저장 매체(600)를 포함할 수 있다.
저장 매체(600)는 제1 불휘발성 메모리 장치(610) 및 제2 불휘발성 메모리 장치(620)를 포함할 수 있다. 예를 들어, 제1 불휘발성 메모리 장치(610)는 복수의 메모리 블록들(BLK11~BLK1i)을 포함할 수 있다. 예를 들어, 메모리 블록(BLK11)은 복수의 페이지들(P11~P1k)을 포함할 수 있다. 메모리 블록은 불휘발성 메모리 장치에서 소거 동작이 수행되는 단위일 수 있다. 페이지는 불휘발성 메모리 장치에서 라이트 또는 리드 동작이 수행되는 단위일 수 있다. 도15는 저장 매체(600)에 두 개의 불휘발성 메모리 장치들(610, 620)이 포함되는 것으로 도시하나, 저장 매체(600)에 포함되는 불휘발성 메모리 장치들의 개수는 이에 제한되지 않는다.
프로세서(510)는 저장 매체(600)를 슈퍼 블록 단위로 관리할 수 있다. 슈퍼 블록은 제1 및 제2 불휘발성 메모리 장치들(610, 620)에 걸쳐 형성될 수 있고, 제1 및 제2 불휘발성 메모리 장치들(610, 620) 각각의 메모리 블록을 포함할 수 있다. 예를 들어, 슈퍼 블록(XBLK1)은 제1 불휘발성 메모리 장치(610)의 메모리 블록(BLK11)과 제2 불휘발성 메모리 장치(620)의 메모리 블록(BLK21)을 포함할 수 있다. 하나의 슈퍼 블록에서 오프셋 값이 동일한 페이지들은 슈퍼 페이지로 정의될 수 있다. 예를 들어, 슈퍼 블록(XBLK1)에서 페이지들(P11, P21)은 하나의 슈퍼 페이지(XP1)로 그룹핑될 수 있다. 프로세서(510)는 처리 속도를 향상시키기 위해서, 저장 매체(600)를 슈퍼 페이지 단위로 액세스할 수 있다. 제1 및 제2 불휘발성 메모리 장치들(610, 620)은 프로세서(510)의 제어에 따라 하나의 슈퍼 페이지로 그룹핑되는 페이지들에 대해 라이트 동작을 병렬적으로 수행할 수 있다.
프로세서(510)는 저장 매체(600)의 타겟 영역을 액세스하고 신뢰성 유지 동작을 수행할 때, 제1 단위의 영역들이 그룹핑된 제1 그룹들 중 타겟 영역을 포함하는 제1 그룹에 대응하는 제1 액세스 횟수를 업데이트할 수 있다. 제1 단위의 영역들은, 예를 들어, 페이지들일 수 있다. 프로세서(510)는 어떤 제1 그룹에 대응하는 제1 액세스 횟수를 통해서 하나의 제1 그룹으로 그룹핑된 복수의 페이지들 각각에 대한 액세스 횟수를 통합적으로 관리할 수 있다. 즉, 프로세서(510)는 어떤 제1 그룹으로 그룹핑된 복수의 페이지들 중 어느 하나를 액세스할 때, 제1 그룹에 대응하는 제1 액세스 횟수를 업데이트할 수 있다. 프로세서(510)는 제1 그룹들에 각각 대응하는 제1 액세스 횟수들을 서로 다른 해시 값들로 인덱싱하고, 제1 액세스 횟수 테이블(525)로서 관리할 수 있다. 프로세서(510)는 도1을 참조하여 설명된 액세스 횟수 테이블(125)의 관리 방법과 실질적으로 동일한 방법으로 제1 액세스 횟수 테이블(525)을 관리할 수 있다.
또한, 프로세서(510)는 저장 매체(600)의 타겟 영역을 액세스하고 신뢰성 유지 동작을 수행할 때, 제2 단위의 영역들이 그룹핑된 제2 그룹들 중 타겟 영역을 포함하는 제2 그룹에 대응하는 제2 액세스 횟수를 업데이트할 수 있다. 제2 단위의 영역들은, 예를 들어, 메모리 블록들(BLK11~BLK1i, BLK21~BLK2i)일 수 있고, 제2 그룹들은 슈퍼 블록들(XBLK1~XBLKi)일 수 있다. 이러한 경우, 프로세서(510)는 어떤 슈퍼 블록에 대응하는 제2 액세스 횟수를 통해서 하나의 슈퍼 블록으로 그룹핑된 메모리 블록들 각각의 액세스 횟수를 통합적으로 관리할 수 있다. 즉, 프로세서(510)는 어떤 슈퍼 블록에 포함된 메모리 블록들에 포함된 페이지들 중 어느 하나라도 액세스할 때, 해당 슈퍼 블록에 대응하는 제2 액세스 횟수를 업데이트할 수 있다. 프로세서(510)는 슈퍼 블록들(XBLK1~XBLKi)에 각각 대응하는 제2 액세스 횟수들을, 예를 들어, 슈퍼 블록들의 어드레스들로 인덱싱하고, 제2 액세스 횟수 테이블(527)로서 관리할 수 있다.
프로세서(510)는 어떤 타겟 영역에 대응하는 제1 액세스 횟수 및 제2 액세스 횟수 모두가 임계 값을 초과할 경우, 해당 타겟 영역에 인접하는 하나 이상의 인접 영역들에 대해 데이터 점검 동작을 수행할 수 있다. 실시 예에 따라, 임계 값은 제1 액세스 횟수 및 제2 액세스 횟수에 대해 서로 동일한 값으로 설정될 수 있고, 또는 서로 다른 값들로 설정될 수도 있다. 프로세서(510)는 도7을 참조하여 설명된 데이터 점검 동작의 수행 방법과 실질적으로 동일하게 데이터 점검 동작을 수행할 수 있다.
한편, 제2 액세스 횟수는 타겟 영역을 포함하는 슈퍼 페이지에 대한 시퀀셜 리드가 발생된 빈도를 포함할 수 있다. 따라서, 임계 값을 초과한 제2 액세스 횟수는 타겟 영역을 포함하는 슈퍼 페이지에 인접한 인접 슈퍼 페이지에 저장된 데이터의 변형 위험을 암시할 수 있다. 인접 슈퍼 페이지는 타겟 영역에 인접한 인접 영역을 포함하는 슈퍼 페이지일 수 있다. 이러한 점을 고려하여, 실시 예에 따라, 프로세서(510)는 어떤 타겟 영역에 대응하는 제1 액세스 횟수 및 제2 액세스 횟수 모두가 임계 값을 초과할 경우, 해당 타겟 영역에 인접하는 하나 이상의 인접 영역들을 포함하는 신뢰성 위험 영역에 대해 데이터 점검 동작을 수행할 수 있다. 신뢰성 위험 영역은 타겟 영역을 포함하는 슈퍼 페이지에 인접한 하나 이상의 인접 슈퍼 페이지들일 수 있다. 신뢰성 위험 영역은 타겟 영역에 인접하는 하나 이상의 인접 영역들을 포함하는 슈퍼 페이지들일 수 있다. 신뢰성 위험 영역은 타겟 영역이 포함된 슈퍼 블록에서 인접 영역과 오프셋 값이 동일한 페이지들을 포함할 수 있다. 예를 들어, 타겟 영역이 페이지(P12)일 때, 신뢰성 위험 영역은 슈퍼 페이지들(XP1, XP3)일 수 있다.
실시 예에 따라, 프로세서(510)는, 데이터 점검 동작을 통해 리클레임 동작을 수행할 필요가 있는 것으로 결정한 경우, 신뢰성 위험 영역에 저장된 데이터를 다른 영역으로 카피할 수 있다. 실시 예에 따라, 프로세서(510)는 데이터 점검 동작을 통해 리클레임 동작을 수행할 필요가 있는 것으로 결정한 경우, 타겟 영역을 포함하는 슈퍼 블록 전체에 대해 가비지 컬렉션 동작을 수행할 수 있다.
프로세서(510)는 데이터 점검 동작을 수행한 뒤 후속 데이터 점검 동작을 지연시키기 위해서, 타겟 영역에 대응하는 제1 액세스 횟수 및 제2 액세스 횟수를 차감 값만큼 감소시킬 수 있다. 실시 예에 따라, 차감 값은 제1 액세스 횟수 및 제2 액세스 횟수에 대해 서로 동일한 값으로 설정될 수 있고, 또는 서로 다른 값들로 설정될 수도 있다.
프로세서(510)는 소거 동작이 수행된 슈퍼 블록에 대응하는 제2 액세스 횟수를 완전히 리셋, 즉, 초기화할 수 있다. 프로세서(510)는 어떤 슈퍼 블록에 포함된 모든 메모리 블록이, 예를 들어, 가비지 컬렉션 동작을 통해 소거되면, 해당 슈퍼 블록에 대응하는 제2 액세스 횟수를 초기화할 수 있다.
정리하면, 프로세서(510)는 공통의 해시 값에 대응하는 복수의 페이지들에 대응하는 제1 액세스 횟수뿐만 아니라, 슈퍼 블록에 대응하는 제2 액세스 횟수를 함께 관리하고, 타겟 영역을 포함하는 슈퍼 페이지에 인접한 인접 슈퍼 페이지에 대해 데이터 점검 동작을 수행함으로써, 데이터 신뢰성을 더욱 향상시킬 수 있다.
도16은 도15에 도시된 프로세서(510)의 신뢰성 유지 동작의 수행 방법을 예시적으로 설명하기 위한 순서도이다. 프로세서(510)는 타겟 영역을 액세스할 때, 신뢰성 유지 동작을 수행할 수 있다.
S510 단계에서, 프로세서(510)는 타겟 영역에 대응하는 제1 액세스 횟수 및 제2 액세스 횟수를 증가시킬 수 있다. 제1 액세스 횟수는 제1 단위의 영역들이 그룹핑된 제1 그룹들 중 타겟 영역을 포함하는 제1 그룹에 대응할 수 있다. 제1 단위의 영역들은, 예를 들어, 페이지들일 수 있다. 제2 액세스 횟수는 제2 단위의 영역들이 그룹핑된 제2 그룹들 중 타겟 영역을 포함하는 제2 그룹에 대응할 수 있다. 제2 단위의 영역들은, 예를 들어, 메모리 블록들일 수 있다.
S520 단계에서, 프로세서(510)는 제1 액세스 횟수 및 제2 액세스 횟수가 임계 값을 각각 초과하는지를 판단할 수 있다. 임계 값은 제1 액세스 횟수 및 제2 액세스 횟수에 대해 서로 동일한 값으로 설정될 수 있고, 또는 서로 다른 값들로 설정될 수도 있다. 제1 액세스 횟수 및 제2 액세스 횟수가 임계 값을 초과한 것으로 판단되는 경우, 절차는 S530 단계로 진행될 수 있다. 제1 액세스 횟수 및 제2 액세스 횟수가 임계 값을 초과하지 않은 것으로 판단되는 경우, 절차는 종료될 수 있다.
S530 단계에서, 프로세서(510)는 데이터 점검 동작을 수행할 수 있다. 실시 예에 따라, 프로세서(510)는 타겟 영역에 인접한 인접 영역을 포함하는 신뢰성 위험 영역에 대해 데이터 점검 동작을 수행할 수 있다.
S540 단계에서, 프로세서(510)는 제1 액세스 횟수 및 제2 액세스 횟수를 차감 값만큼 감소시킬 수 있다. 차감값은 제1 액세스 횟수 및 제2 액세스 횟수에 대해 서로 동일한 값으로 설정될 수 있고, 또는 서로 다른 값들로 설정될 수도 있다.
도17은 도15에 도시된 프로세서(510)의 제2 액세스 횟수의 초기화 방법을 예시적으로 설명하기 위한 순서도이다.
S610 단계에서, 제2 단위의 영역들이 그룹핑된 제2 그룹들 중 어떤 제2 그룹에 대해 소거 동작이 수행될 수 있다. 어떤 제2 그룹은, 예를 들어, 가비지 컬렉션 동작을 통해 소거될 수 있다.
S620 단계에서, 프로세서(510)는 소거 동작이 수행된 제2 그룹에 대응하는 제2 액세스 횟수를 초기화할 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 데이터 저장 장치
100 : 컨트롤러
110 : 프로세서
115 : 해싱부
120 : 메모리
125 : 액세스 횟수 테이블
130 : ECC 유닛
200 : 불휘발성 메모리 장치

Claims (40)

  1. 액세스 요청에 근거하여, 액세스 요청 횟수 및 액세스 요청된 타겟 영역에 대응하는 액세스 횟수를 업데이트하고, 상기 액세스 요청 횟수가 제1 임계 값에 도달할 때마다 상기 액세스 횟수를 초기화하도록 구성된 컨트롤러; 및
    상기 타겟 영역을 포함하고, 상기 컨트롤러의 제어에 따라 상기 타겟 영역을 액세스하도록 구성된 불휘발성 메모리 장치를 포함하는 데이터 저장 장치.
  2. 제1항에 있어서,
    상기 컨트롤러는, 액세스 요청된 데이터의 크기에 따라 상기 액세스 요청 횟수를 1 이상 증가시키는 데이터 저장 장치.
  3. 제1항에 있어서,
    상기 컨트롤러는 해시 함수에 근거하여 상기 타겟 영역의 어드레스를 복수의 해시 값들 중 어느 하나의 해시 값으로 해싱하고, 상기 복수의 해시 값들로 인덱싱된 복수의 액세스 횟수들을 포함하는 액세스 횟수 테이블에서 상기 해시 값으로 인덱싱된 상기 액세스 횟수를 업데이트하는 데이터 저장 장치.
  4. 제1항에 있어서,
    상기 액세스 횟수는 상기 불휘발성 메모리 장치의 복수의 영역들에 공통으로 대응하고,
    상기 컨트롤러는, 상기 복수의 영역들 중 어느 하나를 액세스한 경우 상기 액세스 횟수를 업데이트하는 데이터 저장 장치.
  5. 제4항에 있어서,
    상기 복수의 영역들은 서로 다른 워드라인들에 대응하는 데이터 저장 장치.
  6. 제1항에 있어서,
    상기 컨트롤러는, 상기 액세스 횟수가 제2 임계 값에 도달한 경우 상기 타겟 영역에 인접한 하나 이상의 인접 영역들에 대해 데이터 점검 동작을 수행하는 데이터 저장 장치.
  7. 제6항에 있어서,
    상기 컨트롤러는, 상기 데이터 점검 동작을 수행한 뒤, 상기 액세스 횟수를 차감값 만큼 감소시키는 데이터 저장 장치.
  8. 액세스 요청에 근거하여, 액세스 요청 횟수를 업데이트하는 단계;
    액세스 요청된 불휘발성 메모리 장치의 타겟 영역에 대응하는 제1 액세스 횟수를 업데이트하는 단계; 및
    상기 액세스 요청 횟수가 제1 임계 값에 도달할 때마다, 상기 제1 액세스 횟수를 초기화하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
  9. 제8항에 있어서,
    상기 액세스 요청 횟수는 액세스 요청된 데이터의 크기에 따라 1 이상 증가되는 데이터 저장 장치의 동작 방법.
  10. 제8항에 있어서,
    상기 제1 액세스 횟수를 업데이트하는 단계는,
    제1 해시 함수에 근거하여 상기 타겟 영역의 어드레스를 제1 해시 값으로 해싱하는 단계; 및
    복수의 해시 값들로 인덱싱된 복수의 액세스 횟수들을 포함하는 액세스 횟수 테이블에서, 상기 제1 해시 값으로 인덱싱된 상기 제1 액세스 횟수를 증가시키는 단계를 포함하는 데이터 저장 장치의 동작 방법.
  11. 제8항에 있어서,
    상기 제1 액세스 횟수는 상기 타겟 영역을 포함하는 복수의 영역들에 공통으로 대응하고,
    상기 복수의 영역들은 서로 다른 워드라인들에 대응하는 데이터 저장 장치의 동작 방법.
  12. 제8항에 있어서,
    상기 제1 액세스 횟수가 제2 임계 값에 도달한 경우, 상기 타겟 영역에 인접한 하나 이상의 인접 영역들에 대해 데이터 점검 동작을 수행하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  13. 제12항에 있어서,
    상기 데이터 점검 동작을 수행하는 단계 이후에,
    상기 제1 액세스 횟수를 차감 값만큼 감소시키는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  14. 제8항에 있어서,
    상기 액세스 요청에 근거하여, 상기 타겟 영역에 대응하는 제2 액세스 횟수를 업데이트하는 단계; 및
    상기 액세스 요청 횟수가 상기 제1 임계 값에 도달할 때마다, 상기 제2 액세스 횟수를 초기화하는 단계를 더 포함하되,
    상기 제2 액세스 횟수를 업데이트하는 단계는,
    제2 해시 함수에 근거하여, 상기 타겟 영역의 어드레스를 제2 해시 값으로 해싱하는 단계; 및
    복수의 해시 값들로 인덱싱된 복수의 액세스 횟수들을 포함하는 액세스 횟수 테이블에서, 상기 제2 해시 값으로 인덱싱된 상기 제2 액세스 횟수를 증가시키는 단계를 포함하는 데이터 저장 장치의 동작 방법.
  15. 제1 해시 함수에 근거하여, 액세스 요청된 타겟 영역의 어드레스를 제1 해시 값으로 해싱하는 단계;
    복수의 해시 값들로 인덱싱된 복수의 액세스 횟수들을 포함하는 액세스 횟수 테이블에서, 상기 제1 해시 값으로 인덱싱된 제1 액세스 횟수를 업데이트하는 단계; 및
    액세스 요청에 근거하여, 액세스 요청 횟수를 업데이트하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
  16. 제15항에 있어서,
    상기 액세스 요청 횟수는 액세스 요청된 데이터의 크기에 따라 1 이상 증가되는 데이터 저장 장치의 동작 방법.
  17. 제15항에 있어서,
    상기 제1 액세스 횟수는 상기 타겟 영역을 포함하는 복수의 영역들에 공통으로 대응하고,
    상기 복수의 영역들은 서로 다른 워드라인들에 대응하는 데이터 저장 장치의 동작 방법.
  18. 제15항에 있어서,
    상기 제1 액세스 횟수가 임계 값에 도달한 경우, 상기 타겟 영역에 인접한 하나 이상의 인접 영역들에 대해 데이터 점검 동작을 수행하는 단계; 및
    상기 제1 액세스 횟수를 차감 값만큼 감소시키는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  19. 제15항에 있어서,
    상기 액세스 요청 횟수가 초기화 임계 값에 도달할 때마다, 상기 복수의 액세스 횟수들을 초기화하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  20. 제15항에 있어서,
    제2 해시 함수에 근거하여, 상기 타겟 영역의 상기 어드레스를 제2 해시 값으로 해싱하는 단계; 및
    상기 액세스 횟수 테이블에서, 상기 제2 해시 값으로 인덱싱된 제2 액세스 횟수를 업데이트하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  21. 복수의 불휘발성 메모리 장치들을 포함하는 저장 매체; 및
    상기 저장 매체의 타겟 영역을 액세스할 때, 제1 액세스 횟수 및 제2 액세스 횟수를 각각 업데이트하도록 구성된 컨트롤러를 포함하되,
    상기 제1 액세스 횟수는 상기 저장 매체의 제1 단위의 영역들이 그룹핑된 제1 그룹들 중 상기 타겟 영역을 포함하는 제1 그룹에 대응하고, 상기 제2 액세스 횟수는 상기 저장 매체의 제2 단위의 영역들이 그룹핑된 제2 그룹들 중 상기 타겟 영역을 포함하는 제2 그룹에 대응하는 데이터 저장 장치.
  22. 제21항에 있어서,
    상기 제1 단위의 영역들은 페이지들이고,
    상기 제1 그룹으로 그룹핑된 페이지들은 해시 함수에 근거하여 공통의 해시 값에 대응하는 데이터 저장 장치.
  23. 제21항에 있어서,
    상기 제2 단위의 영역들은 메모리 블록들이고,
    상기 제2 그룹은 상기 복수의 불휘발성 메모리 장치들에 걸쳐 형성되고, 상기 복수의 불휘발성 메모리 장치들 각각의 메모리 블록을 포함하는 슈퍼 블록인 데이터 저장 장치.
  24. 제21항에 있어서,
    상기 컨트롤러는, 상기 제1 그룹들에 각각 대응하는 제1 액세스 횟수들을 포함하는 제1 액세스 횟수 테이블을 관리하고, 상기 제2 그룹들에 각각 대응하는 제2 액세스 횟수들을 포함하는 제2 액세스 횟수 테이블을 관리하는 데이터 저장 장치.
  25. 제21항에 있어서,
    상기 컨트롤러는, 상기 제1 액세스 횟수 및 상기 제2 액세스 횟수가 임계 값을 초과하는 경우, 상기 타겟 영역에 인접한 하나 이상의 인접 영역들을 포함하는 신뢰성 위험 영역에 대해 데이터 점검 동작을 수행하는 데이터 저장 장치.
  26. 제25항에 있어서,
    상기 신뢰성 위험 영역은, 상기 제2 그룹에서 상기 하나 이상의 인접 영역들과 오프셋 값이 동일한 영역들을 포함하는 데이터 저장 장치.
  27. 제25항에 있어서,
    상기 컨트롤러는, 상기 데이터 점검 동작을 수행한 뒤, 상기 제1 액세스 횟수 및 상기 제2 액세스 횟수를 차감 값만큼 각각 감소시키는 데이터 저장 장치.
  28. 제21항에 있어서,
    상기 컨트롤러는, 상기 제2 그룹에 대해 소거 동작이 수행된 경우, 상기 제2 액세스 횟수를 초기화하는 데이터 저장 장치.
  29. 복수의 불휘발성 메모리 장치들을 포함하는 저장 매체; 및
    상기 저장 매체의 타겟 영역을 액세스할 때, 제1 액세스 횟수 및 제2 액세스 횟수를 업데이트하도록 구성된 컨트롤러를 포함하되,
    상기 제1 액세스 횟수는, 해시 함수에 근거하여 공통의 해시 값에 대응하고 상기 타겟 영역을 포함하는 복수의 영역들에 대응하고, 상기 제2 액세스 횟수는, 상기 복수의 불휘발성 메모리 장치들에 걸쳐 형성되고 상기 타겟 영역을 포함하는 슈퍼 블록에 대응하는 데이터 저장 장치.
  30. 제29항에 있어서,
    상기 컨트롤러는, 상기 제1 액세스 횟수 및 상기 제2 액세스 횟수가 임계 값을 초과하는 경우, 상기 타겟 영역에 인접한 하나 이상의 인접 영역들을 포함하는 신뢰성 위험 영역에 대해 데이터 점검 동작을 수행하는 데이터 저장 장치.
  31. 제30항에 있어서,
    상기 신뢰성 위험 영역은, 상기 슈퍼 블록에서 상기 하나 이상의 인접 영역들과 오프셋 값이 동일한 영역들을 포함하는 데이터 저장 장치.
  32. 제30항에 있어서,
    상기 컨트롤러는, 상기 데이터 점검 동작을 수행한 뒤, 상기 제1 액세스 횟수 및 상기 제2 액세스 횟수를 차감 값만큼 각각 감소시키는 데이터 저장 장치.
  33. 제29항에 있어서,
    상기 컨트롤러는, 상기 슈퍼 블록에 대해 소거 동작이 수행된 경우, 상기 제2 액세스 횟수를 초기화하는 데이터 저장 장치.
  34. 제29항에 있어서,
    상기 컨트롤러는, 수신된 액세스 요청에 근거하여 액세스 요청 횟수를 업데이트하고, 상기 액세스 요청 횟수가 초기화 임계 값에 도달할 때마다 상기 제1 액세스 횟수를 초기화하는 데이터 저장 장치.
  35. 복수의 불휘발성 메모리 장치들을 포함하는 저장 매체의 타겟 영역을 액세스하는 단계;
    제1 단위의 영역들이 그룹핑된 제1 그룹들 중 상기 타겟 영역을 포함하는 제1 그룹에 대응하는 제1 액세스 횟수를 업데이트하는 단계; 및
    제2 단위의 영역들이 그룹핑된 제2 그룹들 중 상기 타겟 영역을 포함하는 제2 그룹에 대응하는 제2 액세스 횟수를 업데이트하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
  36. 제35항에 있어서,
    상기 제1 단위의 영역들은 페이지들이고,
    상기 제1 그룹으로 그룹핑된 페이지들은 해시 함수에 근거하여 공통의 해시 값에 대응하는 데이터 저장 장치의 동작 방법.
  37. 제35항에 있어서,
    상기 제2 단위의 영역들은 메모리 블록들이고,
    상기 제2 그룹은 상기 복수의 불휘발성 메모리 장치들에 걸쳐 형성되고, 상기 복수의 불휘발성 메모리 장치들 각각의 메모리 블록을 포함하는 슈퍼 블록인 데이터 저장 장치의 동작 방법.
  38. 제35항에 있어서,
    상기 제1 액세스 횟수 및 상기 제2 액세스 횟수가 임계 값을 초과하는 경우, 상기 타겟 영역에 인접한 하나 이상의 인접 영역들을 포함하는 신뢰성 위험 영역에 대해 데이터 점검 동작을 수행하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  39. 제38항에 있어서,
    상기 데이터 점검 동작을 수행하는 단계 이후에,
    상기 제1 액세스 횟수 및 상기 제2 액세스 횟수를 차감 값만큼 각각 감소시키는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  40. 제35항에 있어서,
    상기 제2 그룹에 대해 소거 동작을 수행하는 단계; 및
    상기 제2 액세스 횟수를 초기화하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
KR1020150029661A 2014-10-07 2015-03-03 데이터 저장 장치 및 그것의 동작 방법 KR102527288B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020150029661A KR102527288B1 (ko) 2015-03-03 2015-03-03 데이터 저장 장치 및 그것의 동작 방법
US14/820,261 US9678827B2 (en) 2014-10-07 2015-08-06 Access counts for performing data inspection operations in data storage device
TW104132898A TWI683252B (zh) 2014-10-07 2015-10-06 資料儲存設備及其操作方法
CN201510646958.2A CN105489239B (zh) 2014-10-07 2015-10-08 数据储存设备及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150029661A KR102527288B1 (ko) 2015-03-03 2015-03-03 데이터 저장 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20160107381A true KR20160107381A (ko) 2016-09-19
KR102527288B1 KR102527288B1 (ko) 2023-05-03

Family

ID=57103085

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150029661A KR102527288B1 (ko) 2014-10-07 2015-03-03 데이터 저장 장치 및 그것의 동작 방법

Country Status (1)

Country Link
KR (1) KR102527288B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140173180A1 (en) * 2012-12-14 2014-06-19 Sandisk Technologies Inc. Tracking read accesses to regions of non-volatile memory
KR20140100327A (ko) * 2013-02-06 2014-08-14 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 시스템의 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140173180A1 (en) * 2012-12-14 2014-06-19 Sandisk Technologies Inc. Tracking read accesses to regions of non-volatile memory
KR20140100327A (ko) * 2013-02-06 2014-08-14 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 시스템의 동작 방법

Also Published As

Publication number Publication date
KR102527288B1 (ko) 2023-05-03

Similar Documents

Publication Publication Date Title
US9678827B2 (en) Access counts for performing data inspection operations in data storage device
US11586679B2 (en) Proactive corrective actions in memory based on a probabilistic data structure
US10318414B2 (en) Memory system and memory management method thereof
US9229851B2 (en) Memory controller, semiconductor memory device and control method thereof
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
US9875035B2 (en) Memory system having a read and copy-back operation and method for the same
US20100235713A1 (en) Non-volatile memory generating read reclaim signal and memory system
US20160350179A1 (en) Decoding method, memory storage device and memory control circuit unit
US11010289B2 (en) Data storage device and operating method thereof
JP2012118979A (ja) Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
US9417959B2 (en) Flash device and operating method thereof
US9507658B2 (en) Data reading method, memory storage device and memory controlling circuit unit
WO2014163952A1 (en) Tracking erase pulses for non-volatile memory
US20090024787A1 (en) Data writing method and apparatus
KR20170086840A (ko) 데이터 저장 장치 및 그것의 동작 방법
WO2014164019A1 (en) Tracking erase operations to regions of non-volatile memory
US20200125285A1 (en) Memory system and operating method thereof
US20130091404A1 (en) Memory controller and storage device
KR20160059050A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN106847342A (zh) 非易失性存储器装置及其空页检测方法
KR102527288B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
CN102915277A (zh) 提高闪存芯片内部数据拷贝速度的方法、闪存存储系统及其控制器
US10073685B2 (en) Methods of system optimization by over-sampling read
US9436547B2 (en) Data storing method, memory control circuit unit and memory storage device
US10747661B2 (en) Data storage device and operating method thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant