KR102811643B1 - 데이터 저장 장치 및 그것의 동작 방법 - Google Patents
데이터 저장 장치 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR102811643B1 KR102811643B1 KR1020170014457A KR20170014457A KR102811643B1 KR 102811643 B1 KR102811643 B1 KR 102811643B1 KR 1020170014457 A KR1020170014457 A KR 1020170014457A KR 20170014457 A KR20170014457 A KR 20170014457A KR 102811643 B1 KR102811643 B1 KR 102811643B1
- Authority
- KR
- South Korea
- Prior art keywords
- garbage collection
- memory
- storage device
- data storage
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
도 2는 도 1의 랜덤 액세스 메모리에서 구동되는 소프트웨어를 예시적으로 설명하기 위한 도면이다.
도 3은 도 2의 가비지 컬렉션 모듈에 의해서 수행되는 가비지 컬렉션 동작을 설명하기 위한 도면이다.
도 4a 내지 도 4d는 본 발명의 실시 예에 따른 가비지 컬렉션 스루풋을 결정하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(SSD)를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 도면이다.
도 6은 도 5에 도시된 컨트롤러를 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 데이터 저장 장치를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 데이터 저장 장치를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 데이터 저장 장치를 포함하는 네트워크 시스템을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 데이터 저장 장치에 포함된 불휘발성 메모리 장치를 예시적으로 보여주는 블럭도이다.
200 : 컨트롤러
220 : 컨트롤 유닛
230 : 랜덤 액세스 메모리
300 : 불휘발성 메모리 장치
310 : 메모리 셀 어레이
Claims (10)
- 불휘발성 메모리 장치를 저장 매체로서 사용하는 데이터 저장 장치의 동작 방법에 있어서:
(n-2)번째 가비지 컬렉션 스루풋과 (n-1)번째 가비지 컬렉션 스루풋을 평균하여 직전 가비지 컬렉션 스루풋의 평균값을 획득하고,
사용된 빈 메모리 블럭의 수와 상기 직전 가비지 컬렉션 스루풋의 평균값의 합에, 오픈 메모리 블럭의 사용된 페이지 양을 처리해야 할 쓰기 데이터 양으로 나눈 비율을 곱하여 (n)번째 가비지 컬렉션 스루풋을 결정하고, 그리고
상기 (n)번째 가비지 컬렉션 스루풋에 근거하여 가비지 컬렉션 동작을 수행하는 데이터 저장 장치의 동작 방법. - 제1항에 있어서,
상기 사용된 빈 메모리 블럭의 수는, 확보해야 하는 최소 빈 메모리 블럭의 수에서 남은 빈 메모리 블럭의 수를 빼서 계산되는 데이터 저장 장치의 동작 방법. - 삭제
- 제1항에 있어서,
상기 처리해야 할 쓰기 데이터양은 쓰기 데이터 양을 페이지 크기로 나누고 올림 연산하여 계산되는 데이터 저장 장치의 동작 방법. - 제1항에 있어서,
상기 오픈 메모리 블럭은 데이터가 쓰여진 사용된 페이지와 빈 페이지를 포함하는 데이터 저장 장치의 동작 방법. - 페이지와 메모리 블럭으로 구성된 메모리 셀 영역을 포함하는 불휘발성 메모리 장치; 및
상기 불휘발성 메모리 장치를 제어하는 컨트롤러를 포함하되,
상기 컨트롤러는, (n-2)번째 가비지 컬렉션 스루풋과 (n-1)번째 가비지 컬렉션 스루풋을 평균하여 직전 가비지 컬렉션 스루풋의 평균값을 획득하고, 사용된 빈 메모리 블럭의 수와 상기 직전 가비지 컬렉션 스루풋의 평균값의 합에, 오픈 메모리 블럭의 사용된 페이지 양을 처리해야 할 쓰기 데이터 양으로 나눈 비율을 곱하여 (n)번째 가비지 컬렉션 스루풋을 결정하고, 상기 (n)번째 가비지 컬렉션 스루풋에 근거하여 가비지 컬렉션 동작을 수행하는 데이터 저장 장치. - 제6항에 있어서,
상기 컨트롤러는, 확보해야 하는 최소 빈 메모리 블럭의 수에서 남은 빈 메모리 블럭의 수를 빼서 상기 사용된 빈 메모리 블럭의 수를 계산하는 데이터 저장 장치. - 삭제
- 제6항에 있어서,
상기 컨트롤러는, 쓰기 데이터 양을 페이지 크기로 나누고 올림 연산하여 상기 처리해야 할 쓰기 데이터 양을 계산하는 데이터 저장 장치. - 제6항에 있어서,
상기 오픈 메모리 블럭은 데이터가 쓰여진 사용된 페이지와 빈 페이지를 포함하는 데이터 저장 장치.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020170014457A KR102811643B1 (ko) | 2017-02-01 | 2017-02-01 | 데이터 저장 장치 및 그것의 동작 방법 |
| US15/615,954 US10558562B2 (en) | 2017-02-01 | 2017-06-07 | Data storage device and operating method thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020170014457A KR102811643B1 (ko) | 2017-02-01 | 2017-02-01 | 데이터 저장 장치 및 그것의 동작 방법 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20180089742A KR20180089742A (ko) | 2018-08-09 |
| KR102811643B1 true KR102811643B1 (ko) | 2025-05-22 |
Family
ID=62979928
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020170014457A Active KR102811643B1 (ko) | 2017-02-01 | 2017-02-01 | 데이터 저장 장치 및 그것의 동작 방법 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10558562B2 (ko) |
| KR (1) | KR102811643B1 (ko) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10474527B1 (en) * | 2017-06-30 | 2019-11-12 | Seagate Technology Llc | Host-assisted error recovery |
| CN111949560B (zh) * | 2019-05-16 | 2024-01-23 | 兆易创新科技集团股份有限公司 | 一种数据写入方法、装置及存储设备 |
| KR20210099870A (ko) | 2020-02-05 | 2021-08-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
| CN117785071B (zh) * | 2024-02-27 | 2024-05-24 | 合肥康芯威存储技术有限公司 | 一种存储器及其性能优化方法 |
| CN120196558B (zh) * | 2025-05-23 | 2025-09-26 | 深圳星火半导体科技有限公司 | 映射表垃圾回收方法、回收装置、存储装置和电子设备 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101477047B1 (ko) | 2008-02-29 | 2014-12-30 | 삼성전자주식회사 | 메모리 시스템 및 그것의 블록 병합 방법 |
| KR20150139112A (ko) * | 2014-06-02 | 2015-12-11 | 삼성전자주식회사 | 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법 |
| KR102596400B1 (ko) * | 2016-03-07 | 2023-11-01 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 데이터 저장 장치의 동작 방법 |
| US10185657B2 (en) * | 2016-04-13 | 2019-01-22 | Nanjing University | Method and system for optimizing deterministic garbage collection in NAND flash storage systems |
-
2017
- 2017-02-01 KR KR1020170014457A patent/KR102811643B1/ko active Active
- 2017-06-07 US US15/615,954 patent/US10558562B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US20180217928A1 (en) | 2018-08-02 |
| KR20180089742A (ko) | 2018-08-09 |
| US10558562B2 (en) | 2020-02-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
| US10275349B2 (en) | Data storage device and the operating method thereof | |
| KR102233400B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR20170053278A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| US9436267B2 (en) | Data storage device | |
| KR102515137B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR102544162B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| US11086772B2 (en) | Memory system performing garbage collection operation and operating method of memory system | |
| KR102270103B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR102811643B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR20190083148A (ko) | 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 | |
| KR20160097657A (ko) | 데이터 저장 장치 그리고 그것의 동작 방법 | |
| KR20210147696A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR20210144249A (ko) | 저장 장치 및 이의 동작 방법 | |
| KR20190061942A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR102746969B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR102474937B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR20210068734A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR20200015185A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR102425470B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR102873594B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR20190041082A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR20180121733A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
| KR20150072485A (ko) | 데이터 저장 장치 및 그것의 동작 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20170201 |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20220103 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20170201 Comment text: Patent Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20240809 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20250408 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20250519 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20250520 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration |