KR20160071703A - 데이터 저장 장치 및 그것의 동작 방법 - Google Patents
데이터 저장 장치 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR20160071703A KR20160071703A KR1020140179191A KR20140179191A KR20160071703A KR 20160071703 A KR20160071703 A KR 20160071703A KR 1020140179191 A KR1020140179191 A KR 1020140179191A KR 20140179191 A KR20140179191 A KR 20140179191A KR 20160071703 A KR20160071703 A KR 20160071703A
- Authority
- KR
- South Korea
- Prior art keywords
- location information
- memory
- read
- data
- memory block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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)
- Memory System (AREA)
Abstract
본 발명에 따른 데이터 저장 장치는 동작 방법은 호스트 장치로부터 리드 요청을 수신하는 단계 및 리드 요청된 데이터의 위치 정보를 선택적으로 수집하는 단계를 포함한다.
Description
본 발명은 데이터 저장 장치에 관한 것으로, 더욱 상세하게는 데이터 저장 장치의 유효 데이터 관리 방법에 관한 것이다.
반도체 장치, 그 중에서도 반도체 메모리 장치는 데이터를 저장하는 용도로 사용될 수 있다. 메모리 장치는 그 타입을 크게 불휘발성과 휘발성으로 구분할 수 있다.
불휘발성 메모리 장치는 전원이 인가되지 않더라도 저장된 데이터를 유지할 수 있다. 불휘발성 메모리 장치는 낸드 플래시(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은 본 발명의 실시 예에 따른 데이터 저장 장치를 개략적으로 도시한 블록도,
도2는 도1의 메모리 장치를 예시적으로 도시한 블록도,
도3은 유효 페이지와 무효 페이지를 설명하기 위한 도면,
도4는 도1의 데이터 저장 장치의 동작 방법을 설명하기 위한 도면,
도5A 및 도5B는 도1의 프로세서가 수집된 위치 정보를 활용하는 방법을 설명하기 위한 도면,
도6은 도1의 데이터 저장 장치의 동작 방법을 도시한 도면,
도7은 도1의 데이터 저장 장치의 다른 동작 방법을 도시한 순서도,
도8은 도1의 데이터 저장 장치의 다른 동작 방법을 도시한 순서도,
도9는 도1의 데이터 저장 장치의 다른 동작 방법을 도시한 순서도,
도10은 도1의 데이터 저장 장치가 수집된 위치 정보를 활용하는 방법을 도시한 순서도,
도11은 도1의 데이터 저장 장치가 수집된 위치 정보를 활용하는 다른 방법을 도시한 순서도이다.
도2는 도1의 메모리 장치를 예시적으로 도시한 블록도,
도3은 유효 페이지와 무효 페이지를 설명하기 위한 도면,
도4는 도1의 데이터 저장 장치의 동작 방법을 설명하기 위한 도면,
도5A 및 도5B는 도1의 프로세서가 수집된 위치 정보를 활용하는 방법을 설명하기 위한 도면,
도6은 도1의 데이터 저장 장치의 동작 방법을 도시한 도면,
도7은 도1의 데이터 저장 장치의 다른 동작 방법을 도시한 순서도,
도8은 도1의 데이터 저장 장치의 다른 동작 방법을 도시한 순서도,
도9는 도1의 데이터 저장 장치의 다른 동작 방법을 도시한 순서도,
도10은 도1의 데이터 저장 장치가 수집된 위치 정보를 활용하는 방법을 도시한 순서도,
도11은 도1의 데이터 저장 장치가 수집된 위치 정보를 활용하는 다른 방법을 도시한 순서도이다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치(10)를 개략적으로 도시한 블록도이다.
데이터 저장 장치(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)는 호스트 장치의 라이트 요청 또는 리드 요청에 응답하여 메모리 장치(200)의 라이트 동작 또는 리드 동작을 제어할 수 있다. 프로세서(110)는 메모리 장치(200)의 동작을 제어하기 위한 커맨드를 생성하고 생성된 커맨드를 메모리 장치(200)로 제공할 수 있다. 프로세서(110)는 메모리(120) 상에서 데이터 저장 장치(10)의 동작을 제어하기 위한 소프트웨어 프로그램을 구동할 수 있다.
프로세서(110)는 라이트 요청에 응답하여 메모리 장치(200)에 데이터를 저장할 때, 라이트 요청에 포함된 논리 어드레스와 메모리 장치(200)의 물리 어드레스를 대응시켜 맵핑 정보(122)를 생성할 수 있다. 프로세서(110)는 L2P 맵핑 테이블 및 P2L 맵핑 테이블의 형태로 맵핑 정보(122)를 관리할 수 있다. L2P 맵핑 테이블은 논리 어드레스들이 인덱스로 설정된 맵핑 정보(122)를 포함할 수 있다. P2L 맵핑 테이블은 물리 어드레스들이 인덱스로 설정된 맵핑 정보(122)를 포함할 수 있다. 맵핑 정보(122)는 메모리(120)에서 매우 큰 공간을 차지할 수 있고, 따라서, 프로세서(110)는 생성된 맵핑 정보(122)를 메모리 장치(200)에 백업하고 필요한 일부를 메모리(120)로 로딩하여 참조할 수 있다.
프로세서(110)는 메모리 장치(200)에 포함된 메모리 블록들 각각의 유효 페이지들의 개수에 대한 정보를 유효 페이지 개수 정보(124)로서 관리할 수 있다. 후술될 바와 같이, 프로세서(110)는, 예를 들어, 맵핑 정보(122)의 변경에 의해 발생할 수 있는 메모리 블록의 유효 페이지 개수의 변경을 유효 페이지 개수 정보(124)에 반영할 수 있다.
프로세서(110)는 호스트 장치로부터 리드 요청을 수신하면, 리드 요청된 데이터의 위치 정보(126)를 별도로 수집할 수 있다. 리드 요청된 데이터의 위치 정보(126)는 리드 요청된 데이터가 저장된 메모리 장치(200) 상의 위치를 가리킬 수 있다. 리드 요청된 데이터의 위치 정보(126)는 리드 요청에 포함된 논리 어드레스에 맵핑된 물리 어드레스를 포함할 수 있다. 프로세서(110)는 리드 요청된 데이터의 위치 정보(126)를 식별하기 위해서 맵핑 정보(122)(예를 들어, L2P 맵핑 테이블)를 참조할 수 있다.
프로세서(110)는 유효 페이지 개수 정보(124)에 근거하여 일정 조건을 만족하는 위치 정보(126)만을 선택적으로 수집할 수 있다. 프로세서(110)는, 예를 들어, 리드 요청된 데이터를 저장한 메모리 블록의 유효 페이지 개수가 임계값 이하인 경우 리드 요청된 데이터의 위치 정보(126)를 수집할 수 있다. 다른 예로서, 프로세서(110)는 유효 페이지 개수 정보(124)를 참조하여 적어도 하나의 비효율 블록들을 선정하고, 리드 요청된 데이터를 저장한 메모리 블록이 선정된 비효율 블록들에 포함되는 경우 리드 요청된 데이터의 위치 정보(126)를 수집할 수 있다.
후술될 바와 같이, L2P 맵핑 테이블에서 리드 요청에 포함된 논리 어드레스에 맵핑된 물리 어드레스는 유효 페이지의 어드레스일 것이기 때문에, 프로세서(110)는 리드 요청을 수신할 때마다 리드 요청에 포함된 논리 어드레스 및 맵핑 정보(122)를 참조하여 유효 페이지의 어드레스를 위치 정보(126)로서 용이하게 즉시 수집할 수 있다. 프로세서(110)는 가비지 컬렉션 동작을 효율적으로 수행하기 위해서, 유효 페이지 개수가 임계치 이하인 비효율 블록에 대해서만 위치 정보(126)를 선택적으로 수집할 수 있다. 본 발명의 실시 예에 따라 리드 요청에 포함된 논리 어드레스를 적극 활용하여 위치 정보(126)를 수집함으로써 유효 페이지들을 파악하는 방법은 도3을 참조하여 후술될 방법보다 프로세서(110)의 오퍼헤드를 훨씬 경감시킬 수 있다.
메모리(120)는 프로세서(110)의 동작 메모리, 버퍼 메모리 또는 캐시 메모리 등의 기능을 수행할 수 있다. 메모리(120)는 동작 메모리로서 프로세서(110)에 의해 구동되는 소프트웨어 프로그램 및 각종 프로그램 데이터를 저장할 수 있다. 메모리(120)는 버퍼 메모리로서 호스트 장치 및 메모리 장치(200) 간에 전송되는 데이터를 버퍼링할 수 있다. 메모리(120)는 캐시 메모리로서 캐시 데이터를 임시 저장할 수 있다. 메모리(120)는 프로세서(110)에 의해 참조되는 맵핑 정보(122) 및 유효 페이지 개수 정보(124)와 프로세서(110)에 의해 별도로 수집된 위치 정보(126)를 저장할 수 있다.
메모리 장치(200)는 불휘발성일 수 있다. 예를 들어, 메모리 장치(200)는 낸드 플래시(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)일 수 있다. 메모리 장치(200)는 프로세서(110)의 제어에 따라 데이터를 저장할 수 있다. 도1은 데이터 저장 장치(10)가 하나의 메모리 장치(200)를 포함하는 것으로 도시하나, 포함되는 메모리 장치의 개수는 이에 한정되지 않는다.
도2는 도1의 메모리 장치(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 비트를 저장하는 멀티 레벨 셀로 구별될 수 있다.
메모리 영역(250)은 복수의 메모리 블록들(B1~Bk)을 포함할 수 있다. 메모리 블록들(B1~Bk) 각각은 복수의 페이지들(예를 들어, P1~Pn)을 포함할 수 있다. 메모리 장치(200)는 메모리 블록 단위로 소거 동작을 수행할 수 있다. 메모리 장치(200)는 페이지 단위로 라이트 동작 또는 리드 동작을 수행할 수 있다.
도3은 유효 페이지와 무효 페이지를 설명하기 위한 도면이다. 도3을 참조하면, 메모리(120)에 저장된 L2P 맵핑 테이블 및 P2L 맵핑 테이블과 페이지들(P1~Pn) 각각에 데이터(D1~Dn)가 저장된 메모리 장치(200)의 메모리 블록(B1)이 도시된다.
상술한 바와 같이, 프로세서(110)는 라이트 요청에 응답하여 페이지들(P1~Pn) 각각에 데이터(D1~Dn)를 저장할 때 논리 어드레스(LA)와 물리 어드레스(PA)를 대응시켜 맵핑 정보를 생성하고, L2P 및 P2L 맵핑 테이블들의 형태로 관리할 수 있다. 이때, P2L 및 L2P 맵핑 테이블들의 맵핑 정보는 서로 일치할 수 있다.
이후, 프로세서(110)는, 예를 들어, 호스트 장치의 요청에 따라 데이터(예를 들어, 데이터(D2))를 업데이트하면서 새로운 영역(예를 들어, 페이지(Px))에 저장할 수 있다. 그리고, 프로세서(110)는 P2L 맵핑 테이블에서 논리 어드레스(LA2)와 물리 어드레스(Px)를 대응시켜 맵핑 정보를 생성하되, 물리 어드레스(P2)에 대한 맵핑 정보를 유지할 수 있다. 그리고, 프로세서(110)는 L2P 맵핑 테이블에서 논리 어드레스(LA2)에 대한 맵핑 정보를 업데이트하여 최신 상태를 반영시킬 수 있다.
이러한 경우, P2L 맵핑 테이블의 맵핑 정보와 L2P 맵핑 테이블의 맵핑 정보가 서로 일치하는 페이지는 유효 데이터를 저장하는 유효 페이지이고, 서로 불일치하는 페이지는 무효 데이터를 저장하는 무효 페이지일 것이다. 예를 들어, 페이지들(P1, Pn)에 대한 P2L 및 L2P 맵핑 테이블들의 맵핑 정보는 여전히 서로 일치하고, 따라서 페이지들(P1, Pn)은 유효 페이지일 것이다. 예를 들어, 페이지(P2)에 대한 맵핑 정보는 업데이트된 바 있기 때문에, P2L 및 L2P 맵핑 테이블들의 맵핑 정보는 서로 불일치하고, 따라서 페이지(P2)는 무효 페이지일 것이다.
프로세서(110)는, 일 시점에서, 상기와 같이 P2L 및 L2P 맵핑 테이블들의 맵핑 정보를 서로 비교하고 일치 여부를 판단함으로써 유효 페이지를 파악할 수 있다. 프로세서(110)가 유효 페이지를 파악하기 위해서 P2L 및 L2P 맵핑 테이블들을 메모리(120)로 로딩하고, P2L 및 L2P 맵핑 테이블들에서 모든 페이지들 각각에 대한 맵핑 정보를 서로 비교하는 과정은 프로세서(110)의 오버헤드를 증가시킬 수 있다.
본 발명의 실시 예에 따르면, 언제나 최신 맵핑 정보를 반영하는 L2P 맵핑 테이블을 참조하여 리드 요청 시마다 리드 요청된 데이터의 위치 정보(126)를 즉시 수집함으로써, 유효 페이지를 효과적으로 파악할 수 있다. 구체적으로, 리드 요청된 데이터의 위치 정보(126), 즉, L2P 맵핑 테이블에서 리드 요청에 포함된 논리 어드레스에 맵핑된 물리 어드레스는 유효 페이지를 가리킬 수 있다.
또한, 본 발명의 실시 예에 따라 유효 페이지 개수가 임계값 이하인 메모리 블록에 대한 위치 정보만을 선택적으로 수집하면, 가비지 컬렉션 동작의 비용을 효과적으로 절감할 수 있다. 유효 페이지 개수가 임계값 이하인 어떤 메모리 블록에 대한 위치 정보의 수집이 완료된 경우 해당 메모리 블록을 빅팀 블록으로 선정하면, 수집된 위치 정보를 통해 유효 페이지를 용이하게 파악하고, 가비지 컬렉션 동작을 효율적으로 수행할 수 있다.
한편, 프로세서(110)는 맵핑 정보(122)의 관리를 통해 유효 페이지 개수 정보(124)를 관리할 수 있다. 예를 들어, 도3에서, 프로세서(110)는 페이지들(P1~Pn)에 데이터(D1~Dn)를 저장한 이후부터 어떤 맵핑 정보를 변경하기 전까지, 메모리 블록(B1)의 유효 페이지 개수를 n으로 설정할 수 있다. 이후, 프로세서(110)는 페이지(P2)에 대한 맵핑 정보를 업데이트할 때 메모리 블록(B1)의 유효 페이지 개수를 (n-1)로 변경할 수 있다.
도4는 도1의 데이터 저장 장치(10)의 동작 방법을 설명하기 위한 도면이다. 도4를 참조하면, 프로세서(110)가 호스트 장치로부터 제공된 리드 요청에 근거하여 리드 요청된 데이터의 위치 정보(126)를 선택적으로 수집하는 과정이 예시적으로 도시된다.
프로세서(110)는 논리 어드레스(LA11)에 대한 리드 요청을 수신하면, 논리 어드레스(LA11)에 맵핑된 메모리 블록(B11)의 유효 페이지 개수가 임계값 이하임을 확인하고, 논리 어드레스(LA11)에 맵핑된 물리 어드레스, 즉, 리드 요청된 데이터의 위치 정보(B11, P11)를 수집할 수 있다. 이때, 메모리(120)의 수집 영역은, 예를 들어, 메모리 블록의 어드레스를 저장하기 위한 영역(128)과 페이지의 어드레스를 저장하기 위한 영역(129)을 포함할 수 있다.
프로세서(110)는 논리 어드레스(LA12)에 대한 리드 요청을 수신하면, 논리 어드레스(LA12)에 맵핑된 메모리 블록(B11)의 유효 페이지 개수가 임계값 이하임을 확인하고, 논리 어드레스(LA12)에 맵핑된 물리 어드레스, 즉, 리드 요청된 데이터의 위치 정보(B11, P12)를 수집할 수 있다.
프로세서(110)는 논리 어드레스(LA13)에 대한 리드 요청을 수신하면, 논리 어드레스(LA13)에 맵핑된 메모리 블록(B12)의 유효 페이지 개수가 임계값 초과임을 확인하고, 논리 어드레스(LA13)에 맵핑된 물리 어드레스, 즉, 리드 요청된 데이터의 위치 정보(B12, P24)를 수집하지 않을 수 있다.
프로세서(110)는 논리 어드레스(LA14)에 대한 리드 요청을 수신하면, 논리 어드레스(LA14)에 맵핑된 메모리 블록(B13)의 유효 페이지 개수가 임계값 이하임을 확인하고, 논리 어드레스(LA14)에 맵핑된 물리 어드레스, 즉, 리드 요청된 데이터의 위치 정보(B13, P31)를 수집할 수 있다.
도5A 및 도5B는 도1의 프로세서(110)가 수집된 위치 정보를 활용하는 방법을 설명하기 위한 도면이다. 도5A 및 도5B에서, 프로세서(110)는 총 4개의 유효 페이지들을 포함하는 메모리 블록(B11)과 총 3개의 유효 페이지들을 포함하는 메모리 블록(B13)의 유효 페이지들의 위치를 파악하기 위해 리드 요청들을 통해 위치 정보(126)를 수집한 결과, 메모리 블록(B11)에 포함된 모든 유효 페이지들(P11, P12, P15, P16)에 대한 위치 정보의 수집을 완료하였고, 메모리 블록(B13)에 포함된 유효 페이지들 중 일부(P31, P39)에 대한 위치 정보(126)를 수집한 것으로 가정한다.
도5A를 참조하면, 프로세서(110)는 모든 유효 페이지들에 대한 위치 정보의 수집을 완료한 메모리 블록이 존재하는 경우 해당 메모리 블록을 가비지 컬렉션 동작에서 빅팀 블록으로 선정함으로써, 프리 블록을 획득할 수 있다. 프로세서(110)는 메모리 블록(B11)의 모든 유효 페이지들(P11, P12, P15, P16)에 저장된 유효 데이터(D11, D12, D15, D16)를 새로운 위치(B15)에 카피할 수 있다. 그리고 프로세서(110)는 메모리 블록(B11)을 소거할 수 있다.
도5B를 참조하면, 프로세서(110)는, 예를 들어, 메모리(120)의 빈 공간이 충분하지 않을 때, 빈 공간을 확보하기 위해서 지금까지 수집된 위치 정보를 사용한 뒤 제거할 수 있다. 프로세서(110)는 지금까지 수집된 위치 정보(126)를 통해 유효 페이지들(P11, P12, P15, P16, P31, P39)을 파악하고 유효 데이터(D11, D12, D15, D16, D31, D39)를 모두 새로운 위치(B15)에 카피할 수 있다. 프로세서(110)는 메모리 블록(B13)에서 페이지들(P31, P39)을 무효 페이지로 처리하고, 메모리 블록(B13)에 남아있는 유효 페이지에 대한 위치 정보(126)를 이어서 수집하기 위해 메모리 블록(B13)의 유효 페이지 개수를 1로 변경할 수 있다.
도6은 도1의 데이터 저장 장치(10)의 동작 방법을 도시한 순서도이다.
S110 단계에서, 프로세서(110)는 호스트 장치로부터 리드 요청을 수신할 수 있다. 프로세서(110)는 리드 요청에 응답하여 메모리 장치(200)에 대해 리드 동작을 수행할 것이다.
S120 단계에서, 프로세서(110)는 리드 요청된 데이터의 위치 정보(126)를 메모리(120)에 별도로 수집할 수 있다. 리드 요청된 데이터의 위치 정보(126)는 리드 요청된 데이터가 저장된 메모리 장치(200) 상의 위치를 가리킬 수 있다. 리드 요청된 데이터의 위치 정보(126)는 리드 요청에 포함된 논리 어드레스에 맵핑된 물리 어드레스를 포함할 수 있다. 프로세서(110)는 리드 요청된 데이터의 위치 정보를 식별하기 위해서 L2P 맵핑 테이블 형태의 맵핑 정보(122)를 참조할 수 있다.
도7은 도1의 데이터 저장 장치(10)의 다른 동작 방법을 도시한 순서도이다.
S210 단계에서, 프로세서(110)는 호스트 장치로부터 리드 요청을 수신할 수 있다.
S220 단계에서, 프로세서(110)는 리드 요청된 데이터를 저장한 메모리 블록의 유효 페이지 개수가 임계값 이하인지를 판단할 수 있다. 프로세서(110)는 유효 페이지 개수 정보(124)를 참조하여 리드 요청된 데이터를 저장한 메모리 블록의 유효 페이지 개수를 확인할 수 있다. 유효 페이지 개수가 임계값 이하인 경우, 절차는 S230 단계로 진행될 수 있다. 유효 페이지 개수가 임계값을 초과하는 경우, 절차는 종료될 수 있다.
S230 단계에서, 프로세서(110)는 리드 요청된 데이터의 위치 정보를 메모리(120)에 별도로 수집할 수 있다.
도8은 도1의 데이터 저장 장치(10)의 다른 동작 방법을 도시한 순서도이다.
S310 단계에서, 프로세서(110)는 호스트 장치로부터 리드 요청을 수신할 수 있다.
S320 단계에서, 프로세서(110)는 리드 요청된 데이터를 저장한 메모리 블록의 유효 페이지 개수가 임계값 이하인지를 판단할 수 있다. 유효 페이지 개수가 임계값 이하인 경우, 절차는 S330 단계로 진행될 수 있다. 유효 페이지 개수가 임계값을 초과하는 경우, 절차는 종료될 수 있다.
S330 단계에서, 프로세서(110)는 리드 요청된 데이터의 위치 정보가 이미 수집되어 있지 않은 새로운 위치 정보인지를 확인할 수 있다. 프로세서(110)는 확인을 위해, 이미 수집된 위치 정보와 리드 요청된 데이터의 위치 정보를 비교할 수 있다. 위치 정보가 새로운 위치 정보인 경우, 절차는 S340 단계로 진행될 수 있다. 위치 정보(126)가 새로운 위치 정보가 아닌 경우, 절차는 종료될 수 있다.
S340 단계에서, 프로세서(110)는 리드 요청된 데이터의 위치 정보를 메모리(120)에 별도로 수집할 수 있다.
도9는 도1의 데이터 저장 장치(10)의 다른 동작 방법을 도시한 순서도이다.
S410 단계에서, 프로세서(110)는 유효 페이지 개수 정보(124)를 참조하여 적어도 하나의 비효율 블록들을 선정할 수 있다. 프로세서(110)는 메모리 블록들 각각의 유효 페이지 개수와 임계값을 비교하고, 유효 페이지 개수가 임계값 이하인 메모리 블록을 비효율 블록으로 선정할 수 있다.
S420 단계에서, 프로세서(110)는 호스트 장치로부터 리드 요청을 수신할 수 있다.
S430 단계에서, 프로세서(110)는 리드 요청된 데이터를 저장한 메모리 블록이 선정된 비효율 블록들에 포함되는지 여부를 판단할 수 있다. 리드 요청된 데이터를 저장한 메모리 블록이 선정된 비효율 블록들에 포함되는 경우, 절차는 S440 단계로 진행될 수 있다. 리드 요청된 데이터를 저장한 메모리 블록이 선정된 비효율 블록들에 포함되지 않는 경우, 절차는 종료될 수 있다.
S440 단계에서, 프로세서(110)는 리드 요청된 데이터의 위치 정보를 메모리(120)에 별도로 수집할 수 있다.
도10은 도1의 데이터 저장 장치(10)가 수집된 위치 정보를 활용하는 방법을 도시한 순서도이다.
S510 단계에서, 프로세서(110)는 위치 정보의 수집이 완료된 메모리 블록이 존재하는지를 확인할 수 있다. 구체적으로, 프로세서(110)는 수집된 위치 정보를 대응하는 메모리 블록에 따라 분류하고, 메모리 블록들 각각에 대해 수집된 위치 정보의 개수를 카운트할 수 있다. 그리고, 프로세서(110)는 카운트된 개수가 해당 메모리 블록의 유효 페이지 개수와 일치하는 경우, 해당 메모리 블록에 대해 위치 정보의 수집이 완료된 것으로 판단할 수 있다. 수집 완료된 메모리 블록이 존재하는 경우, 절차는 S520 단계로 진행될 수 있다. 수집 완료된 메모리 블록이 존재하지 않는 경우, 절차는 종료될 수 있다.
S520 단계에서, 프로세서(110)는 위치 정보의 수집이 완료된 메모리 블록에서, 수집된 위치 정보를 통해 파악된 유효 페이지들의 유효 데이터를 새로운 위치로 카피할 수 있다.
S530 단계에서, 프로세서(110)는 수집 완료된 메모리 블록을 소거할 수 있다. 즉, 프로세서(110)는 수집 완료된 메모리 블록을 빅팀 블록으로 선정하여 가비지 컬렉션 동작을 수행할 수 있다.
S540 단계에서, 프로세서(110)는 수집 완료된 메모리 블록에 관해 수집된 위치 정보를 메모리(120)에서 제거할 수 있다. 프로세서(110)는 수집된 위치 정보 중 사용된 위치 정보를 메모리(120)에서 제거할 수 있다.
도11은 도1의 데이터 저장 장치(10)가 수집된 위치 정보를 활용하는 다른 방법을 도시한 순서도이다.
S610 단계에서, 프로세서(110)는 수집된 위치 정보를 저장할 수집 영역이 부족한지 여부를 판단할 수 있다. 예를 들어, 프로세서(110)는 수집된 위치 정보의 총 개수를 카운트할 수 있고, 카운트된 총 개수가 설정값에 도달하는 경우 수집 영역이 부족한 것으로 판단할 수 있다. 수집 영역이 부족한 경우, 절차는 S620 단계로 진행될 수 있다. 수집 영역이 부족하지 않은 경우, 절차는 종료될 수 있다.
S620 단계에서, 프로세서(110)는 모든 수집된 위치 정보를 통해 파악된 유효 페이지들의 유효 데이터를 새로운 위치로 카피할 수 있다.
S630 단계에서, 프로세서(110)는 수집된 모든 위치 정보를 메모리(120)에서 제거할 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 데이터 저장 장치
100 : 컨트롤러
110 : 프로세서
120 : 메모리
122 : 맵핑 정보
124 : 유효 페이지 개수 정보
126 : 위치 정보
200 : 메모리 장치
100 : 컨트롤러
110 : 프로세서
120 : 메모리
122 : 맵핑 정보
124 : 유효 페이지 개수 정보
126 : 위치 정보
200 : 메모리 장치
Claims (20)
- 호스트 장치로부터 리드 요청을 수신하는 단계; 및
리드 요청된 데이터의 위치 정보를 선택적으로 수집하는 단계를 포함하는 데이터 저장 장치의 동작 방법. - 제1항에 있어서,
상기 위치 정보는 상기 리드 요청에 포함된 논리 어드레스에 맵핑된 물리 어드레스를 포함하는 데이터 저장 장치의 동작 방법. - 제1항에 있어서,
상기 위치 정보를 수집하는 단계는,
상기 리드 요청된 데이터를 저장한 메모리 블록의 유효 페이지 개수와 임계값을 비교하는 단계; 및
비교 결과에 따라 상기 위치 정보를 수집할 것으로 결정하는 단계를 포함하는 데이터 저장 장치의 동작 방법. - 제1항에 있어서,
메모리 블록들 각각의 유효 페이지 개수와 임계값을 비교하는 단계; 및
비교 결과에 따라 적어도 하나의 비효율 블록들을 선정하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - 제4항에 있어서,
상기 위치 정보를 수집하는 단계는,
상기 리드 요청된 데이터를 저장한 메모리 블록이 상기 적어도 하나의 비효율 블록들에 포함되는지를 판단하는 단계; 및
판단 결과에 따라 상기 위치 정보를 수집할 것으로 결정하는 단계를 포함하는 데이터 저장 장치의 동작 방법. - 제1항에 있어서,
수집된 위치 정보에 근거하여 상기 리드 요청된 데이터를 새로운 위치로 카피하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - 제1항에 있어서,
수집된 위치 정보에 근거하여 가비지 컬렉션 동작을 수행하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - 호스트 장치로부터 리드 요청된 데이터의 위치 정보를 별도로 수집하는 단계; 및
수집된 위치 정보에 근거하여 가비지 컬렉션 동작을 수행하는 단계를 포함하는 데이터 저장 장치의 동작 방법. - 제8항에 있어서,
상기 위치 정보는 상기 리드 요청에 포함된 논리 어드레스에 맵핑된 물리 어드레스를 포함하는 데이터 저장 장치의 동작 방법. - 제8항에 있어서,
상기 위치 정보를 수집하는 단계는,
상기 리드 요청된 데이터를 저장한 메모리 블록의 유효 페이지 개수와 임계값을 비교하는 단계; 및
비교 결과에 따라 상기 위치 정보를 수집할 것으로 결정하는 단계를 포함하는 데이터 저장 장치의 동작 방법. - 제8항에 있어서,
상기 수집된 위치 정보는 대응하는 메모리 블록에 따라 분류되는 데이터 저장 장치의 동작 방법. - 제8항에 있어서,
상기 가비지 컬렉션 동작을 수행하는 단계는,
빅팀 블록을 선정하는 단계; 및
상기 빅팀 블록에서 상기 수집된 위치 정보를 통해 파악된 유효 페이지들의 유효 데이터를 새로운 위치로 카피하는 단계를 포함하는 데이터 저장 장치의 동작 방법. - 제12항에 있어서,
상기 빅팀 블록은,
위치 정보의 수집이 완료된 메모리 블록인 데이터 저장 장치의 동작 방법. - 제13항에 있어서,
상기 빅팀 블록은,
유효 페이지 개수가 임계값 이하인 메모리 블록인 데이터 저장 장치의 동작 방법. - 제8항에 있어서,
상기 수집된 위치 정보의 총 개수가 설정값에 도달하는 경우, 상기 수집된 위치 정보를 통해 파악된 유효 페이지들의 유효 데이터를 새로운 위치로 카피하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - 불휘발성 메모리 장치; 및
외부 장치로부터 상기 불휘발성 메모리 장치에 대해 리드 요청된 데이터의 위치 정보를 선택적으로 수집하도록 구성된 컨트롤러를 포함하는 데이터 저장 장치. - 제16항에 있어서,
상기 컨트롤러는 상기 리드 요청에 포함된 논리 어드레스에 맵핑된 물리 어드레스를 상기 위치 정보로서 수집하는 데이터 저장 장치. - 제16항에 있어서,
상기 컨트롤러는, 상기 리드 요청된 데이터를 저장한 메모리 블록의 유효 페이지 개수가 임계값 이하인 경우 상기 위치 정보를 수집하는 데이터 저장 장치. - 제16항에 있어서,
상기 컨트롤러는, 메모리 블록의 유효 페이지 개수가 임계값 이하인 메모리 블록을 비효율 블록으로 선정하는 데이터 저장 장치. - 제19항에 있어서,
상기 리드 요청된 데이터를 저장한 메모리 블록이 상기 비효율 블록인 경우 상기 위치 정보를 수집하는 데이터 저장 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140179191A KR102343246B1 (ko) | 2014-12-12 | 2014-12-12 | 데이터 저장 장치 및 그것의 동작 방법 |
US14/667,357 US9483181B2 (en) | 2014-12-12 | 2015-03-24 | Data storage device and operating method thereof |
CN201510370071.5A CN105701035B (zh) | 2014-12-12 | 2015-06-29 | 数据储存器件及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140179191A KR102343246B1 (ko) | 2014-12-12 | 2014-12-12 | 데이터 저장 장치 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160071703A true KR20160071703A (ko) | 2016-06-22 |
KR102343246B1 KR102343246B1 (ko) | 2021-12-27 |
Family
ID=56111185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140179191A KR102343246B1 (ko) | 2014-12-12 | 2014-12-12 | 데이터 저장 장치 및 그것의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9483181B2 (ko) |
KR (1) | KR102343246B1 (ko) |
CN (1) | CN105701035B (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11269528B2 (en) | 2019-03-18 | 2022-03-08 | SK Hynix Inc. | Data storage device with reduced memory access operation method thereof and controller therefor |
US11556466B2 (en) | 2018-05-31 | 2023-01-17 | Micron Technology, Inc. | Logical-to-physical data structures |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102449192B1 (ko) * | 2015-09-10 | 2022-09-29 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법 |
US20180095906A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Hardware-based shared data coherency |
CN108984423B (zh) * | 2017-05-31 | 2020-10-27 | 龙芯中科技术有限公司 | 一种系统级芯片的地址空间验证方法和系统 |
KR102512727B1 (ko) | 2017-12-22 | 2023-03-22 | 삼성전자주식회사 | 가비지 컬렉션을 수행하는 스토리지 장치, 및 스토리지 장치의 가비지 컬렉션 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243613A (zh) * | 2010-05-12 | 2011-11-16 | 西部数据技术公司 | 管理固态存储器中垃圾收集的系统和方法 |
KR20130008300A (ko) * | 2011-07-12 | 2013-01-22 | 삼성전자주식회사 | 오버 프로그램을 이용하여 소거 동작을 수행하는 플래시 메모리 장치 및 그 동작방법 |
KR20130128685A (ko) * | 2012-05-17 | 2013-11-27 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
KR20140094278A (ko) * | 2013-01-22 | 2014-07-30 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110132202A (ko) | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 비휘발성 메모리 시스템 및 상기 메모리 시스템의 동작방법 |
KR101392174B1 (ko) | 2011-11-09 | 2014-05-09 | 한양대학교 산학협력단 | 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 |
EP2791774A1 (en) * | 2012-02-08 | 2014-10-22 | Hitachi, Ltd. | Storage apparatus with a plurality of nonvolatile semiconductor storage units and control method thereof to place hot data in storage units with higher residual life and cold data in storage units with lower residual life |
US8990484B2 (en) * | 2012-12-14 | 2015-03-24 | Virtium Technology, Inc | Heap-based mechanism for efficient garbage collection block selection |
CN103336744B (zh) * | 2013-06-20 | 2015-11-04 | 华中科技大学 | 一种固态存储设备的垃圾回收方法及其系统 |
CN103412826A (zh) * | 2013-07-18 | 2013-11-27 | 记忆科技(深圳)有限公司 | 固态硬盘的垃圾回收方法及系统 |
CN103365788B (zh) * | 2013-08-06 | 2016-01-13 | 山东大学 | 实时闪存转换层使用的自适应局部垃圾回收方法 |
-
2014
- 2014-12-12 KR KR1020140179191A patent/KR102343246B1/ko active IP Right Grant
-
2015
- 2015-03-24 US US14/667,357 patent/US9483181B2/en active Active
- 2015-06-29 CN CN201510370071.5A patent/CN105701035B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243613A (zh) * | 2010-05-12 | 2011-11-16 | 西部数据技术公司 | 管理固态存储器中垃圾收集的系统和方法 |
US20110283049A1 (en) * | 2010-05-12 | 2011-11-17 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
KR20130008300A (ko) * | 2011-07-12 | 2013-01-22 | 삼성전자주식회사 | 오버 프로그램을 이용하여 소거 동작을 수행하는 플래시 메모리 장치 및 그 동작방법 |
KR20130128685A (ko) * | 2012-05-17 | 2013-11-27 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
KR20140094278A (ko) * | 2013-01-22 | 2014-07-30 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556466B2 (en) | 2018-05-31 | 2023-01-17 | Micron Technology, Inc. | Logical-to-physical data structures |
US11269528B2 (en) | 2019-03-18 | 2022-03-08 | SK Hynix Inc. | Data storage device with reduced memory access operation method thereof and controller therefor |
Also Published As
Publication number | Publication date |
---|---|
CN105701035A (zh) | 2016-06-22 |
US20160170648A1 (en) | 2016-06-16 |
US9483181B2 (en) | 2016-11-01 |
KR102343246B1 (ko) | 2021-12-27 |
CN105701035B (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9507711B1 (en) | Hierarchical FTL mapping optimized for workload | |
CN106448737B (zh) | 读取闪存数据的方法、装置以及固态驱动器 | |
US8788778B1 (en) | Garbage collection based on the inactivity level of stored data | |
US9658955B2 (en) | Data storage device and operating method thereof | |
KR102343246B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US9678827B2 (en) | Access counts for performing data inspection operations in data storage device | |
EP3539005A1 (en) | Data relocation in hybrid memory | |
US10372382B2 (en) | Methods and apparatus for read disturb detection based on logical domain | |
CN110032333B (zh) | 存储器系统及其操作方法 | |
US20150098271A1 (en) | System and method of storing data in a data storage device | |
KR20160024546A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11194737B2 (en) | Storage device, controller and method for operating the controller for pattern determination | |
US20160253257A1 (en) | Data processing system and operating method thereof | |
EP3338193B1 (en) | Convertible leaf memory mapping | |
US11334272B2 (en) | Memory system and operating method thereof | |
KR20190067921A (ko) | 데이터에 대한 메모리 동작 | |
CN106598504B (zh) | 数据存储方法及装置 | |
CN106257432B (zh) | 数据储存设备及其操作方法 | |
KR20160059050A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102507769B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11392310B2 (en) | Memory system and controller | |
US11182329B2 (en) | Data processing system and operating method thereof | |
US10656846B2 (en) | Operating method of memory system | |
US11829646B2 (en) | Memory device performance based on storage traffic pattern detection | |
KR102527288B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |