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

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

Info

Publication number
KR20160024550A
KR20160024550A KR1020140111453A KR20140111453A KR20160024550A KR 20160024550 A KR20160024550 A KR 20160024550A KR 1020140111453 A KR1020140111453 A KR 1020140111453A KR 20140111453 A KR20140111453 A KR 20140111453A KR 20160024550 A KR20160024550 A KR 20160024550A
Authority
KR
South Korea
Prior art keywords
data
write
write operation
merge
perform
Prior art date
Application number
KR1020140111453A
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 KR1020140111453A priority Critical patent/KR20160024550A/ko
Priority to US14/572,014 priority patent/US9424183B2/en
Priority to TW104122645A priority patent/TWI707268B/zh
Priority to CN201510508084.4A priority patent/CN105390155B/zh
Publication of KR20160024550A publication Critical patent/KR20160024550A/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/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
    • 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
    • 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/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

데이터 저장 장치의 동작 방법은 라이트 요청을 수신하는 단계, 불휘발성 메모리 장치의 하나의 워드 라인에 연결된 메모리 셀들 각각에 복수의 비트들을 동시에 라이트하는 제1 라이트 동작의 수행 가부를 판단하는 단계 및 판단 결과에 따라 상기 불휘발성 메모리 장치에 대한 가비지 컬렉션 동작을 수행함으로써 제1 머지 데이터를 생성하는 단계를 포함한다.

Description

데이터 저장 장치 및 그것의 동작 방법{DATA STORAGE DEVICE AND OPERATING METHOD THEREOF}
본 발명은 데이터 저장 장치에 관한 것으로, 더욱 상세하게는 데이터 저장 장치가 데이터를 라이트하는 방법에 관한 것이다.
반도체 장치, 그 중에서도 반도체 메모리 장치는 데이터를 저장하는 용도로 사용될 수 있다. 메모리 장치는 그 타입을 크게 불휘발성과 휘발성으로 구분할 수 있다.
불휘발성 메모리 장치는 전원이 인가되지 않더라도 저장된 데이터를 유지할 수 있다. 불휘발성 메모리 장치는 낸드 플래시(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) 등을 포함할 수 있다.
휘발성 메모리 장치는 전원이 인가되지 않는 경우 저장된 데이터를 유지하지 못하고 소실할 수 있다. 휘발성 메모리 장치는 SRAM(Static Random Access Memory), DRAM(Dynamic Random Access Memory) 등을 포함할 수 있다. 휘발성 메모리 장치는 비교적 빠른 처리 속도에 기반하여, 데이터 처리 시스템에서 일반적으로 버퍼 메모리 장치, 캐시 메모리 장치, 동작 메모리 장치 등의 용도로 사용될 수 있다.
본 발명의 실시 예는 메모리 셀 당 복수의 비트들을 동시에 저장할 수 있는 데이터 저장 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은 라이트 요청을 수신하는 단계, 불휘발성 메모리 장치의 하나의 워드 라인에 연결된 메모리 셀들 각각에 복수의 비트들을 동시에 라이트하는 제1 라이트 동작의 수행 가부를 판단하는 단계 및 판단 결과에 따라 상기 불휘발성 메모리 장치에 대한 가비지 컬렉션 동작을 수행함으로써 제1 머지 데이터를 생성하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 라이트 요청된 라이트 데이터에 대해 제1 라이트 동작의 수행 가부를 판단하고, 판단 결과에 따라 가비지 컬렉션 동작을 수행하도록 구성된 컨트롤러 및 상기 컨트롤러의 제어에 따라 상기 제1 라이트 동작을 수행하도록 구성된 불휘발성 메모리 장치를 포함하되, 상기 제1 라이트 동작은 하나의 워드 라인에 연결된 메모리 셀들 각각에 복수의 비트들을 동시에 라이트하기 위해 수행될 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 메모리 셀 당 복수의 비트들을 동시에 저장할 수 있다.
도1은 실시 예에 따른 데이터 저장 장치를 예시적으로 도시한 블록도,
도2는 도1에 도시된 메모리 영역에 페이지 단위로 어드레스가 부여된 상태를 예시적으로 도시한 도면,
도3은 메모리 셀들의 문턱 전압 분포를 예시적으로 도시한 도면,
도4는 제1 라이트 동작의 수행 시 메모리 셀들의 문턱 전압 분포의 변화를 도시한 도면,
도5는 도1에 도시된 데이터 저장 장치의 동작 방법을 설명하기 위한 순서도,
도6은 불휘발성 메모리 장치에 대한 가비지 컬렉션 동작이 수행됨으로써 제1 머지 데이터가 생성되는 과정을 예시적으로 도시한 순서도,
도7은 도1에 도시된 데이터 저장 장치의 다른 동작 방법을 설명하기 위한 순서도,
도8은 도1에 도시된 데이터 저장 장치의 다른 동작 방법을 설명하기 위한 순서도이다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도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)를 포함할 수 있다.
프로세서(110)는 데이터 저장 장치(10)의 제반 동작을 제어할 수 있다. 프로세서(110)는 메모리(120) 상에서 데이터 저장 장치(10)의 동작을 제어하기 위한 소프트웨어 프로그램을 구동할 수 있다. 프로세서(110)는 불휘발성 메모리 장치(200)가 제1 라이트 동작을 수행하도록 제어할 수 있다. 제1 라이트 동작은 불휘발성 메모리 장치(200)의 하나의 워드 라인에 연결된 메모리 셀들 각각에 복수의 비트들을 동시에 라이트하기 위해서 수행될 수 있다. 프로세서(110)는 불휘발성 메모리 장치(200)가 제2 라이트 동작을 수행하도록 제어할 수 있다. 제2 라이트 동작은 불휘발성 메모리 장치(200)의 하나의 워드 라인에 연결된 메모리 셀들 각각에 1비트를 라이트하기 위해서 수행될 수 있다.
메모리(120)는 프로세서(110)의 동작 메모리, 버퍼 메모리 또는 캐시 메모리 등의 기능을 수행할 수 있다. 메모리(120)는 프로세서(110)에 의해 구동되는 소프트웨어 프로그램 및 각종 프로그램 데이터를 저장하거나, 외부 장치 및 불휘발성 메모리 장치(200) 간에 전송되는 데이터를 버퍼링하거나 또는 캐시 데이터를 임시 저장할 수 있다.
불휘발성 메모리 장치(200)는 제어 로직(210), 인터페이스부(220), 어드레스 디코더(230), 데이터 입출력부(240) 및 메모리 영역(250)을 포함할 수 있다.
제어 로직(210)은 컨트롤러(100)로부터 제공된 커맨드에 응답하여 불휘발성 메모리 장치(200)의 라이트 동작, 리드 동작 및 소거 동작과 같은 제반 동작들을 제어할 수 있다.
인터페이스부(220)는 컨트롤러(100)와 커맨드, 어드레스를 포함한 각종 제어 신호들 및 데이터를 주고 받을 수 있다. 인터페이스부(220)는 입력된 각종 제어 신호들 및 데이터를 불휘발성 메모리 장치(200)의 내부 유닛들로 전송할 수 있다.
어드레스 디코더(230)는 전송된 로우 어드레스 및 컬럼 어드레스를 디코딩할 수 있다. 어드레스 디코더(230)는 로우 어드레스의 디코딩 결과에 따라 워드 라인들(WL)이 선택적으로 구동되도록 제어할 수 있다. 어드레스 디코더(230)는 컬럼 어드레스의 디코딩 결과에 따라 비트 라인들(BL)이 선택적으로 구동되도록 데이터 입출력부(240)를 제어할 수 있다.
데이터 입출력부(240)는 인터페이스부(220)로부터 전송된 데이터를 비트 라인들(BL)을 통해 메모리 영역(250)으로 전송할 수 있다. 데이터 입출력부(240)는 메모리 영역(250)으로부터 비트 라인들(BL)을 통해 리드된 데이터를 인터페이스부(220)로 전송할 수 있다.
메모리 영역(250)은 워드 라인들(WL)을 통해 어드레스 디코더(230)와 연결될 수 있고, 비트 라인들(BL)을 통해 데이터 입출력부(240)와 연결될 수 있다. 메모리 영역(250)은, 예를 들어, 3차원 구조의 메모리 셀 어레이를 포함할 수 있다.
메모리 영역(250)은 워드 라인들(WL)과 비트 라인들(BL)이 교차하는 영역에 각각 배치된 복수의 메모리 셀들(미도시)로 구성될 수 있다. 메모리 셀들은 메모리 셀 당 저장하는 데이터 비트 수에 따라 구별될 수 있다. 예를 들어, 메모리 셀들은 메모리 셀 당 1비트를 저장하는 싱글 레벨 셀과 셀 당 적어도 2비트를 저장하는 멀티 레벨 셀로 구별될 수 있다.
도2는 도1에 도시된 메모리 영역(250)에 페이지 단위로 어드레스가 부여된 상태를 예시적으로 도시한다.
메모리 영역(250)은 제1 내지 제4 페이지들(P1~P4)을 포함할 수 있다. 도2는, 예를 들어, 4개의 페이지들을 도시하지만, 페이지들의 개수는 이에 제한되지 않는다. 제1 내지 제4 페이지들(P1~P4)은 각각 액세스될 수 있도록 대응하는 어드레스를 부여받을 수 있다.
제1 및 제2 페이지들은 제1 워드 라인을 공유할 수 있다. 제1 및 제2 페이지들은 제1 워드 라인을 구동함으로써 각각 액세스될 수 있다. 제3 및 제4 페이지들은 제2 워드 라인을 공유할 수 있다. 제3 및 제4 페이지들은 제2 워드 라인을 구동함으로써 각각 액세스될 수 있다. 도2는 2개의 페이지들이 하나의 워드 라인을 공유하는 것으로 도시하지만, 워드 라인을 공유하는 페이지들의 개수는 이에 제한되지 않는다. 후술될 바와 같이, 워드 라인을 공유하는 페이지들의 개수는 메모리 셀 당 몇 비트가 저장되는지에 따라 결정될 수 있다.
제1 내지 제4 페이지들(P1~P4)은 실질적인 물리적 영역이 아닌 가상의 논리적 영역을 구성할 수 있다. 제1 내지 제4 페이지들(P1~P4) 각각은 대응하는 워드 라인에 연결된 메모리 셀에 저장된 데이터 비트에 의해 형성되는 것으로 간주될 수 있다. 제1 내지 제4 페이지들(P1~P4) 각각은 대응하는 워드 라인에 연결된 메모리 셀에 저장된 데이터 비트를 저장하는 것으로 간주될 수 있다.
메모리 셀이, 예를 들어, 셀 당 2비트를 저장하는 멀티 레벨 셀인 경우, 메모리 셀은 하위 비트(least significant bit, LSB)와 상위 비트(most significant bit, MSB)를 저장할 수 있다. 메모리 셀에 저장된 하위 비트와 상위 비트 각각은 LSB 페이지와 MSB 페이지를 형성할 수 있다. 예를 들어, 제1 워드 라인(WL1)에 연결된 메모리 셀에 저장된 하위 비트가 제1 페이지(P1)에 저장되는 경우 제1 페이지(P1)는 LSB 페이지이고, 제1 워드 라인(WL1)에 연결된 메모리 셀에 저장된 상위 비트가 제2 페이지(P2)에 저장되는 경우 제2 페이지(P2)는 MSB 페이지일 것이다. 제2 워드 라인(WL2)에 연결된 메모리 셀에 저장된 하위 비트가 제3 페이지(P3)에 저장되는 경우 제3 페이지(P3)는 LSB 페이지이고, 제2 워드 라인(WL2)에 연결된 메모리 셀에 저장된 상위 비트가 제4 페이지(P4)에 저장되는 경우 제4 페이지(P4)는 MSB 페이지일 것이다.
도3은 메모리 셀들의 문턱 전압 분포를 예시적으로 도시한 도면이다. 문턱 전압 분포는 가로 축이 문턱 전압(Vth)의 레벨이고 세로 축이 메모리 셀들의 개수인 그래프 상에 도시될 수 있다. 도3에서, 메모리 셀들은 셀 당 2비트를 저장하는 것으로 가정한다.
메모리 셀에 데이터를 라이트하는 동작은 해당 메모리 셀이 일정한 범위 내의 문턱 전압을 가지도록 메모리 셀에 바이어스 전압을 인가함으로써 수행될 수 있다. 메모리 셀은 저장된 데이터에 따라 일정한 범위 내의 문턱 전압을 가질 수 있다. 예를 들어, '11'을 저장하는 메모리 셀은 제1 분포(D1)를 형성하는 문턱 전압을 가질 수 있다. '01'을 저장하는 메모리 셀은 제2 분포(D2)를 형성하는 문턱 전압을 가질 수 있다. '00'을 저장하는 메모리 셀은 제3 분포(D3)를 형성하는 문턱 전압을 가질 수 있다. '10'을 저장하는 메모리 셀은 제4 분포(D4)를 형성하는 문턱 전압을 가질 수 있다.
도4는 제1 라이트 동작의 수행 시 메모리 셀들의 문턱 전압 분포의 변화를 도시한 도면이다.
불휘발성 메모리 장치(200)는 컨트롤러(100)의 제어에 따라 메모리 셀에 복수의 비트들을 동시에 라이트하기 위해서 제1 라이트 동작을 수행할 수 있다. 불휘발성 메모리 장치(200)는 하나의 워드 라인에 연결된 메모리 셀들에 대해 제1 라이트 동작을 수행할 수 있다. 불휘발성 메모리 장치(200)는 워드 라인을 공유하는 복수의 페이지들에 데이터를 동시에 저장하기 위해서 제1 라이트 동작을 수행할 수 있다.
도4에서, 메모리 셀들 각각은 2비트를 저장할 수 있다. 메모리 셀들은 제1 라이트 동작이 수행되기 전 소거된 상태로 존재할 수 있다. 소거된 상태의 메모리 셀들은 '11'을 저장한 상태로 존재할 수 있고, 따라서, 제1 분포(D1)를 형성할 수 있다.
제1 라이트 동작이 수행되면, 메모리 셀의 문턱 전압은 4개의 문턱 전압 분포들(D1, D2, D3, D4) 중 어느 하나를 형성하도록 변화할 수 있다. 제1 라이트 동작이 수행된 메모리 셀은 하위 비트 및 상위 비트를 동시에 저장할 수 있다.
도5는 도1에 도시된 데이터 저장 장치(10)의 동작 방법을 설명하기 위한 순서도이다.
컨트롤러(100)는 아래와 같은 절차를 통해 불휘발성 메모리 장치(200)에 제1 라이트 동작이 수행될 데이터를 제1 라이트 동작 수행 단위로 제공할 수 있다. 제1 라이트 동작 수행 단위는 하나의 워드 라인을 공유하는 복수의 페이지들에 대응하는 비트 수일 수 있다. 제1 라이트 동작 수행 단위는 하나의 워드 라인에 연결된 메모리 셀들 각각에 복수의 비트들이 동시에 라이트되기 위해 필요한 비트 수일 수 있다.
S110 단계에서, 라이트 요청이 수신될 수 있다. 데이터 저장 장치(10)는 외부 장치로부터 라이트 요청과 함께 라이트 데이터를 수신할 수 있다.
S120 단계에서, 라이트 데이터에 대해 제1 라이트 동작의 수행 가부가 판단될 수 있다. 예를 들어, 프로세서(110)는 라이트 데이터가 제1 라이트 동작 수행 단위에 부합하는지 여부에 근거하여 제1 라이트 동작의 수행 가부를 판단할 수 있다. 프로세서(110)는 라이트 데이터의 크기와 제1 라이트 동작 수행 단위, 즉, 기준 값을 비교하고, 비교 결과에 근거하여 제1 라이트 동작의 수행 가부를 판단할 수 있다. 프로세서(110)는 라이트 데이터의 크기가 기준 값 이상인 경우, 라이트 데이터에 대해 제1 라이트 동작이 수행 가능한 것으로 판단할 수 있다. 프로세서(110)는 라이트 데이터의 크기가 기준 값 미만인 경우, 라이트 데이터에 대해 제1 라이트 동작이 수행 불가능한 것으로 판단할 수 있다.
제1 라이트 동작이 수행 가능한 것으로 판단되는 경우(예), 절차는 S160 단계로 진행될 수 있다.
S160 단계에서, 라이트 데이터에 대해 제1 라이트 동작이 수행될 수 있다. 불휘발성 메모리 장치(200)는 프로세서(110)의 제어에 따라 라이트 데이터를 저장하기 위해서, 하나의 워드 라인에 연결된 메모리 셀들 각각에 복수의 비트들을 동시에 라이트할 수 있다. 절차는 종료될 수 있다.
S120 단계에서, 제1 라이트 동작이 수행 불가능한 것으로 판단되는 경우(아니오), 절차는 S130 단계로 진행될 수 있다.
S130 단계에서, 불휘발성 메모리 장치(200)에 대한 가비지 컬렉션 동작이 수행됨으로써 제1 머지 데이터가 생성될 수 있다. 프로세서(110)는 불휘발성 메모리 장치(200)에 저장된 유효 데이터를 수집하기 위해 가비지 컬렉션 동작을 수행할 수 있고, 수집된 유효 데이터를 라이트 데이터에 부가함으로써 제1 머지 데이터를 생성할 수 있다.
S140 단계에서, 제1 머지 데이터에 대해 제1 라이트 동작의 수행 가부가 판단될 수 있다. 예를 들어, 프로세서(110)는 제1 머지 데이터가 제1 라이트 동작 수행 단위에 부합하는지 여부에 근거하여 제1 라이트 동작의 수행 가부를 판단할 수 있다. 프로세서(110)는 제1 머지 데이터의 크기와 기준 값을 비교하고, 비교 결과에 근거하여 제1 라이트 동작의 수행 가부를 판단할 수 있다. 프로세서(110)는 제1 머지 데이터의 크기가 기준 값 이상인 경우, 제1 머지 데이터에 대해 제1 라이트 동작이 수행 가능한 것으로 판단할 수 있다. 프로세서(110)는 제1 머지 데이터의 크기가 기준 값 미만인 경우, 제1 머지 데이터에 대해 제1 라이트 동작이 수행 불가능한 것으로 판단할 수 있다.
제1 라이트 동작이 수행 가능한 것으로 판단되는 경우(예), 절차는 S160 단계로 진행될 수 있다.
S160 단계에서, 제1 머지 데이터에 대해 제1 라이트 동작이 수행될 수 있다. 불휘발성 메모리 장치(200)는 프로세서(110)의 제어에 따라 제1 머지 데이터를 저장하기 위해서, 하나의 워드 라인에 연결된 메모리 셀들 각각에 복수의 비트들을 동시에 라이트할 수 있다. 절차는 종료될 수 있다.
S140 단계에서, 제1 라이트 동작이 수행 불가능한 것으로 판단되는 경우(아니오), 절차는 S150 단계로 진행될 수 있다.
S150 단계에서, 제2 머지 데이터가 생성될 수 있다. 프로세서(110)는 제1 머지 데이터에 더미 데이터를 부가함으로써 제2 머지 데이터를 생성할 수 있다. 프로세서(110)는 제1 머지 데이터에 더미 데이터를 부가함으로써 제1 머지 데이터보다 증가된 크기를 가지는 제2 머지 데이터를 생성할 수 있다. 프로세서(110)는 제2 머지 데이터가 제1 라이트 동작 수행 단위에 부합하도록 제1 머지 데이터에 더미 데이터를 부가할 수 있다.
S160 단계에서, 제2 머지 데이터에 대해 제1 라이트 동작이 수행될 수 있다. 불휘발성 메모리 장치(200)는 프로세서(110)의 제어에 따라 제2 머지 데이터를 저장하기 위해서, 하나의 워드 라인에 연결된 메모리 셀들 각각에 복수의 비트들을 동시에 라이트할 수 있다. 절차는 종료될 수 있다.
정리하면, 라이트 요청된 라이트 데이터가 제1 라이트 동작 수행 단위에 부합하지 않는 경우, 컨트롤러(100)는 라이트 데이터에 유효 데이터 또는 더미 데이터를 부가함으로써 제1 라이트 동작 수행 단위에 부합하는 머지 데이터를 생성하고 불휘발성 메모리 장치(200)에 제공할 수 있다.
도6은 불휘발성 메모리 장치(200)에 대한 가비지 컬렉션 동작이 수행됨으로써 제1 머지 데이터가 생성되는 과정을 예시적으로 도시한 순서도이다. 도6에 도시된 절차들은 도5의 S130 단계에 대응될 수 있다.
S210 단계에서, 메모리 영역(250)에 대해 희생 메모리 블록이 존재하는지 여부가 판단될 수 있다. 희생 메모리 블록은 유효한 데이터를 저장하는 유효 페이지 및 무효한 데이터를 저장하는 무효 페이지의 구성 비율에 근거하여 선정될 수 있다. 희생 메모리 블록은 유효 페이지들에 대한 카피 비용이 설정 값 이하인지 여부에 근거하여 선정될 수 있다. 희생 메모리 블록이 존재하는 경우(예), 절차는 S220 단계로 진행될 수 있다.
S220 단계에서, 희생 메모리 블록에 포함된 유효 페이지가 수집되고, 라이트 요청된 라이트 데이터에 부가될 수 있다. 프로세서(110)는 수집된 유효 페이지를 라이트 데이터에 부가함으로써, 라이트 데이터보다 증가된 크기를 가지는 제1 머지 데이터를 생성할 수 있다. 절차는 종료될 수 있다.
S210 단계에서, 희생 메모리 블록이 존재하지 않는 경우(아니오), 절차는 종료될 수 있다. 프로세서(110)는 가비지 컬렉션 동작의 수행 결과 희생 메모리 블록이 존재하지 않는 경우, 라이트 데이터에 부가될 유효 페이지를 수집하지 못할 수 있다. 이러한 경우, 프로세서(110)는 라이트 데이터에 유효 페이지를 부가함이 없이 라이트 데이터와 실질적으로 동일한 제1 머지 데이터를 생성할 것이다.
도7은 도1에 도시된 데이터 저장 장치(10)의 다른 동작 방법을 설명하기 위한 순서도이다. 도7에 도시된 절차는, S330 및 S340 단계를 제외하고 도5에 도시된 절차와 실질적으로 유사할 수 있다. 즉, 도7에서 S310, S320, S350, S360, S370 및 S380 단계 각각은 도5에 도시된 S110, S120, S130, S140, S150 및 S160 단계와 실질적으로 유사할 수 있다. 따라서, 이하에서 S330 및 S340 단계가 중심적으로 설명될 것이다.
S320 단계에서, 라이트 데이터에 대해 제1 라이트 동작이 수행 불가능한 것으로 판단되는 경우(아니오), 절차는 S330 단계로 진행될 수 있다.
S330 단계에서, 프리 머지 데이터가 생성될 수 있다. 프로세서(110)는 메모리(120)에 캐싱된 캐싱 데이터를 라이트 데이터에 부가함으로써 프리 머지 데이터를 생성할 수 있다. 프로세서(110)는 캐싱 데이터를 라이트 데이터에 부가함으로써, 라이트 데이터보다 증가된 크기를 가지는 프리 머지 데이터를 생성할 수 있다.
S340 단계에서, 프리 머지 데이터에 대해 제1 라이트 동작의 수행 가부가 판단될 수 있다. 예를 들어, 프로세서(110)는 프리 머지 데이터가 제1 라이트 동작 수행 단위에 부합하는지 여부에 근거하여 제1 라이트 동작의 수행 가부를 판단할 수 있다. 프로세서(110)는 프리 머지 데이터의 크기와 기준 값을 비교하고, 비교 결과에 근거하여 제1 라이트 동작의 수행 가부를 판단할 수 있다. 프로세서(110)는 프리 머지 데이터의 크기가 기준 값 이상인 경우, 프리 머지 데이터에 대해 제1 라이트 동작이 수행 가능한 것으로 판단할 수 있다. 프로세서(110)는 프리 머지 데이터의 크기가 기준 값 미만인 경우, 프리 머지 데이터에 대해 제1 라이트 동작이 수행 불가능한 것으로 판단할 수 있다.
제1 라이트 동작이 수행 가능한 것으로 판단되는 경우(예), 절차는 S380 단계로 진행될 수 있다.
제1 라이트 동작이 수행 불가능한 것으로 판단되는 경우(아니오), 절차는 S350 단계로 진행될 수 있다. S350 단계에서, 프로세서(110)는 불휘발성 메모리 장치(200)에 대한 가비지 컬렉션 동작을 수행함으로써 수집된 유효 데이터를 프리 머지 데이터에 부가하여 제1 머지 데이터를 생성할 수 있다.
정리하면, 라이트 요청된 라이트 데이터가 제1 라이트 동작 수행 단위에 부합하지 않는 경우, 컨트롤러(100)는 라이트 데이터에 캐싱 데이터를 부가함으로써 제1 라이트 동작 수행 단위에 부합하는 머지 데이터를 생성하고 불휘발성 메모리 장치(200)에 제공할 수 있다.
도8은 도1에 도시된 데이터 저장 장치(10)의 다른 동작 방법을 설명하기 위한 순서도이다.
도8에서 S410, S420, S430, S440 및 S450 단계 각각은 도5에 도시된 S110, S120, S130, S140 및 S160 단계와 실질적으로 유사할 수 있다. 따라서, 상세한 설명은 생략될 것이다.
S440 단계에서, 제1 머지 데이터에 대해 제1 라이트 동작이 수행 불가능한 것으로 판단되는 경우(아니오), 절차는 S4600 단계로 진행될 수 있다.
S460 단계에서, 제1 머지 데이터는 불휘발성 메모리 장치(200)의 버퍼 메모리 영역에 저장될 수 있다. 예를 들어, 가비지 컬렉션 동작이 수행되었음에도 불구하고 라이트 데이터에 부가될 유효 페이지가 수집되지 못함에 따라, 라이트 데이터와 실질적으로 동일한 제1 머지 데이터가 생성되거나 또는 제1 머지 데이터가 제1 라이트 동작 수행 단위에 부합하지 못하는 경우, 불휘발성 메모리 장치(200)는 제1 머지 데이터를 별도의 버퍼 메모리 영역(미도시)에 저장할 수 있다. 버퍼 메모리 영역의 메모리 셀은 1비트를 저장하는 싱글 레벨 셀이거나 하위 비트만을 저장하는 멀티 레벨 셀일 수 있다. 불휘발성 메모리 장치(200)는 제2 라이트 동작을 통해 버퍼 메모리 영역에 제1 머지 데이터를 저장할 수 있다. 제2 라이트 동작은 하나의 워드 라인에 연결된 메모리 셀들 각각에 1비트를 라이트하기 위해서 수행될 수 있다. 버퍼 메모리 영역에 저장된 데이터는 추후에 가비지 컬렉션 동작의 수행 결과 다른 데이터에 부가됨으로써, 제1 라이트 동작을 통해 메모리 영역(250)에 저장될 수 있을 것이다. 절차는 종료될 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 데이터 저장 장치
100 : 컨트롤러
110 : 프로세서
120 : 메모리
200 : 불휘발성 메모리 장치
210 : 제어 로직
220 : 인터페이스부
230 : 어드레스 디코더
240 : 데이터 입출력부
250 : 메모리 영역

Claims (18)

  1. 라이트 요청을 수신하는 단계;
    불휘발성 메모리 장치의 하나의 워드 라인에 연결된 메모리 셀들 각각에 복수의 비트들을 동시에 라이트하는 제1 라이트 동작의 수행 가부를 판단하는 단계; 및
    판단 결과에 따라 상기 불휘발성 메모리 장치에 대한 가비지 컬렉션 동작을 수행함으로써 제1 머지 데이터를 생성하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
  2. 제1항에 있어서,
    상기 제1 라이트 동작의 수행 가부를 판단하는 단계는,
    상기 라이트 요청에 대응하는 라이트 데이터의 크기와 기준 값을 비교하는 단계; 및
    비교 결과에 근거하여 상기 라이트 데이터에 대해 상기 제1 라이트 동작의 수행 가부를 1차 판단하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
  3. 제2항에 있어서,
    상기 기준 값은 하나의 워드 라인을 공유하는 복수의 페이지들에 대응하는 비트들의 수인 데이터 저장 장치의 동작 방법.
  4. 제2항에 있어서,
    상기 제1 라이트 동작의 수행 가부를 판단하는 단계는,
    상기 1차 판단 결과에 따라, 상기 라이트 데이터에 대해 상기 제1 라이트 동작을 수행하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  5. 제2항에 있어서,
    상기 제1 라이트 동작의 수행 가부를 판단하는 단계는,
    상기 1차 판단 결과에 따라, 메모리에 캐싱된 캐싱 데이터를 상기 라이트 데이터에 부가함으로써 프리 머지 데이터를 생성하는 단계;
    상기 프리 머지 데이터의 크기와 상기 기준 값을 비교하는 단계; 및
    비교 결과에 근거하여 상기 프리 머지 데이터에 대해 상기 제1 라이트 동작의 수행 가부를 2차 판단하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  6. 제1항에 있어서,
    상기 제1 머지 데이터를 생성하는 단계는,
    상기 라이트 요청에 대응하는 라이트 데이터에 상기 가비지 컬렉션 동작의 수행 결과 수집된 유효 데이터를 부가하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
  7. 제1항에 있어서,
    상기 제1 머지 데이터에 대해 상기 제1 라이트 동작의 수행 가부를 3차 판단하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  8. 제7항에 있어서,
    상기 3차 판단 결과에 따라, 상기 제1 머지 데이터에 대해 상기 제1 라이트 동작을 수행하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  9. 제7항에 있어서,
    상기 3차 판단 결과에 따라, 상기 제1 머지 데이터에 더미 데이터를 부가함으로써 제2 머지 데이터를 생성하는 단계; 및
    상기 제2 머지 데이터에 대해 상기 제1 라이트 동작을 수행하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  10. 제7항에 있어서,
    상기 3차 판단 결과에 따라, 제2 라이트 동작을 통해 상기 불휘발성 메모리 장치의 버퍼 메모리 영역에 상기 제1 머지 데이터를 저장하는 단계를 더 포함하되,
    상기 제2 라이트 동작은 상기 불휘발성 메모리 장치의 하나의 워드 라인에 연결된 메모리 셀들 각각에 1비트를 라이트하기 위해 수행되는 데이터 저장 장치의 동작 방법.
  11. 라이트 요청된 라이트 데이터에 대해 제1 라이트 동작의 수행 가부를 판단하고, 판단 결과에 따라 가비지 컬렉션 동작을 수행하도록 구성된 컨트롤러; 및
    상기 컨트롤러의 제어에 따라 상기 제1 라이트 동작을 수행하도록 구성된 불휘발성 메모리 장치를 포함하되,
    상기 제1 라이트 동작은 하나의 워드 라인에 연결된 메모리 셀들 각각에 복수의 비트들을 동시에 라이트하기 위해 수행되는 데이터 저장 장치.
  12. 제11항에 있어서,
    상기 컨트롤러는,
    상기 라이트 데이터의 크기와 기준 값을 비교하고, 비교 결과에 근거하여 상기 라이트 데이터에 대해 상기 제1 라이트 동작의 수행 가부를 판단하는 데이터 저장 장치.
  13. 제12항에 있어서,
    상기 기준 값은 하나의 워드 라인을 공유하는 복수의 페이지들에 대응하는 비트들의 수인 데이터 저장 장치.
  14. 제11항에 있어서,
    상기 컨트롤러는,
    캐싱 데이터를 저장하는 메모리를 포함하고,
    상기 판단 결과에 따라 상기 캐싱 데이터를 상기 라이트 데이터에 부가함으로써 생성된 프리 머지 데이터에 대해 상기 제1 라이트 동작의 수행 가부를 판단하는 데이터 저장 장치.
  15. 제11항에 있어서,
    상기 컨트롤러는,
    상기 라이트 데이터에 상기 가비지 컬렉션 동작의 수행 결과 수집된 유효 데이터를 부가함으로써 생성된 제1 머지 데이터에 대해 상기 제1 라이트 동작의 수행 가부를 판단하는 데이터 저장 장치.
  16. 제15항에 있어서,
    상기 컨트롤러는,
    상기 제1 머지 데이터에 대해 상기 제1 라이트 동작이 수행 불가능한 것으로판단되는 경우, 상기 제1 머지 데이터에 대해 더미 데이터를 부가함으로써 제2 머지 데이터를 생성하는 데이터 저장 장치.
  17. 제16항에 있어서,
    상기 컨트롤러는,
    상기 제2 머지 데이터가 상기 제1 라이트 동작의 수행 단위에 부합하도록 상기 제1 머지 데이터에 상기 더미 데이터를 부가하는 데이터 저장 장치.
  18. 제15항에 있어서,
    상기 불휘발성 메모리 장치는,
    상기 제1 머지 데이터에 대해 상기 제1 라이트 동작이 수행 불가능한 것으로판단되는 경우, 제2 라이트 동작에 의해 상기 제1 머지 데이터를 저장하는 버퍼 메모리 영역을 포함하고,
    상기 제2 라이트 동작은 하나의 워드 라인에 연결된 메모리 셀들 각각에 1비트를 라이트하기 위해 수행되는 데이터 저장 장치.
KR1020140111453A 2014-08-26 2014-08-26 데이터 저장 장치 및 그것의 동작 방법 KR20160024550A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140111453A KR20160024550A (ko) 2014-08-26 2014-08-26 데이터 저장 장치 및 그것의 동작 방법
US14/572,014 US9424183B2 (en) 2014-08-26 2014-12-16 Data storage device and method for operating the same
TW104122645A TWI707268B (zh) 2014-08-26 2015-07-13 資料儲存裝置及其操作方法
CN201510508084.4A CN105390155B (zh) 2014-08-26 2015-08-18 数据储存设备及用于操作该数据储存设备的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140111453A KR20160024550A (ko) 2014-08-26 2014-08-26 데이터 저장 장치 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20160024550A true KR20160024550A (ko) 2016-03-07

Family

ID=55402640

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140111453A KR20160024550A (ko) 2014-08-26 2014-08-26 데이터 저장 장치 및 그것의 동작 방법

Country Status (4)

Country Link
US (1) US9424183B2 (ko)
KR (1) KR20160024550A (ko)
CN (1) CN105390155B (ko)
TW (1) TWI707268B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200036508A (ko) * 2018-09-28 2020-04-07 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US10108350B2 (en) * 2015-09-10 2018-10-23 Western Digital Technologies, Inc. Method for providing nonvolatile storage write bandwidth using a caching namespace
US10048876B2 (en) * 2015-09-10 2018-08-14 Western Digital Technologies, Inc. Method for providing nonvolatile storage write bandwidth using a caching namespace
CN110837339B (zh) * 2018-08-17 2023-07-04 群联电子股份有限公司 数据整并方法、存储器存储装置及存储器控制电路单元
KR20200073604A (ko) * 2018-12-14 2020-06-24 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112004002851B4 (de) * 2004-05-11 2023-05-25 Spansion Llc (N.D.Ges.D. Staates Delaware) Halbleitervorrichtung und Programmierverfahren
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
CN102576330B (zh) * 2009-06-12 2015-01-28 提琴存储器公司 具有持久化无用单元收集机制的存储系统
EP2577470A4 (en) * 2010-06-04 2013-12-25 Sandisk Entpr Ip Llc CACHE ADMINISTRATION AND ACCELERATION IN STORAGE MEDIA
US8626986B2 (en) * 2010-06-30 2014-01-07 Sandisk Technologies Inc. Pre-emptive garbage collection of memory blocks
KR101938210B1 (ko) 2012-04-18 2019-01-15 삼성전자주식회사 낸드 플래시 메모리, 가변 저항 메모리 및 컨트롤러를 포함하는 메모리 시스템의 동작 방법
KR102020818B1 (ko) 2012-07-02 2019-09-16 삼성전자주식회사 3차원 불휘발성 메모리 및 3차원 불휘발성 메모리를 포함하는 메모리 시스템 및의 프로그램 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200036508A (ko) * 2018-09-28 2020-04-07 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Also Published As

Publication number Publication date
TW201608468A (zh) 2016-03-01
CN105390155B (zh) 2021-03-02
CN105390155A (zh) 2016-03-09
US20160062884A1 (en) 2016-03-03
TWI707268B (zh) 2020-10-11
US9424183B2 (en) 2016-08-23

Similar Documents

Publication Publication Date Title
US20160179625A1 (en) Data storage device and operating method thereof
US11682446B2 (en) Selective wordline scans based on a data state metric
TWI707268B (zh) 資料儲存裝置及其操作方法
US10942681B2 (en) Memory system and operation method thereof
US11709605B2 (en) Storing zones in a zone namespace on separate planes of a multi-plane memory device
KR20160024546A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11726690B2 (en) Independent parallel plane access in a multi-plane memory device
KR20190006677A (ko) 데이터 저장 장치 및 그것의 동작 방법
US9619323B2 (en) Data storage device and operating method thereof
KR20200076923A (ko) 저장 장치, 컨트롤러 및 저장 장치의 동작 방법
US20230185471A1 (en) Temperature controlled zone creation and allocation
US11756604B2 (en) Managing write disturb for units of memory in a memory sub-system using a randomized refresh period
US11720490B2 (en) Managing host input/output in a memory system executing a table flush
KR102264757B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102246843B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20240070084A1 (en) Padding cached data with valid data for memory flush commands
US11899955B2 (en) Managing a memory sub-system using a cross-hatch cursor
US11711488B2 (en) Configurable storage granularity for video/image recording
US11790998B2 (en) Eliminating write disturb for system metadata in a memory sub-system
CN115273925A (zh) 存储器子系统刷新

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid