KR101278591B1 - 플래시 메모리 시스템 및 그 동작 방법 - Google Patents
플래시 메모리 시스템 및 그 동작 방법 Download PDFInfo
- Publication number
- KR101278591B1 KR101278591B1 KR1020110051046A KR20110051046A KR101278591B1 KR 101278591 B1 KR101278591 B1 KR 101278591B1 KR 1020110051046 A KR1020110051046 A KR 1020110051046A KR 20110051046 A KR20110051046 A KR 20110051046A KR 101278591 B1 KR101278591 B1 KR 101278591B1
- Authority
- KR
- South Korea
- Prior art keywords
- flash memory
- sector information
- flash
- pages
- garbage collection
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- 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/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- 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/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
- G06F3/0656—Data buffering arrangements
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
도 2는 섹터정보를 추출하는 것을 설명하기 위한 도면이다.
도 3은 개시된 기술의 일 실시예에 따라 가비지 컬렉션을 수행하는 것을 설명하기 위한 도면이다.
도 4는 개시된 기술의 일 실시예에 따른 플래시 메모리 시스템이 동작하는 방법을 설명하기 위한 순서도이다.
도 5는 개시된 기술의 섹터정보 변환 인터페이스를 가상 머신 환경에서 구현하는 것을 나타내는 도면이다.
도 6은 개시된 기술의 시뮬레이션 결과를 나타내는 도면이다.
도 7은 개시된 기술의 시뮬레이션 결과를 나타내는 도면이다.
Claims (14)
- 플래시 메모리의 데이터가 버퍼캐시에 캐싱된 후 운영체제 또는 응용프로그램이 상기 버퍼캐시에 캐싱된 상기 데이터를 수정하는 명령을 전달한 경우 상기 명령에서 상기 데이터가 플래시 메모리에 저장될 위치정보인 섹터정보를 추출하는 섹터정보 추출부;
상기 섹터정보 추출부로부터 추출된 상기 섹터정보를 플래시 변환 계층이 인식할 수 있도록 변환하는 섹터정보 변환 인터페이스; 및
상기 섹터정보 변환 인터페이스로부터 변환된 상기 섹터정보를 기초로 상기 플래시 메모리에 대한 주소 사상 또는 가비지 컬렉션 중 하나 이상을 수행하는 플래시 변환 계층;
을 포함하는 플래시 메모리 시스템. - 제 1항에 있어서,
상기 플래시 변환 계층은 상기 섹터정보 변환 인터페이스로부터 변환된 상기 섹터정보를 기초로 상기 플래시 메모리에서 불필요한 쓰기 또는 삭제 과정을 제거하여 상기 플래시 메모리를 관리하는 플래시 메모리 시스템. - 제 1항에 있어서,
상기 섹터정보 추출부는 상기 운영체제 또는 상기 응용프로그램에서 상기 버퍼캐시로 전달하는 명령으로부터 상기 섹터정보를 추출하는 플래시 메모리 시스템. - 제 1항에 있어서,
상기 플래시 변환 계층이 상기 변환된 섹터정보를 기초로 상기 플래시 메모리에서 가비지 컬렉션을 수행하는 플래시 메모리 시스템. - 제 1항에 있어서,
상기 플래시 변환 계층은 상기 변환된 섹터정보를 상기 플래시 메모리의 페이지 정보로 변환하고, 블록 당 수정 요청이 발생한 페이지 개수를 기초로 가비지 컬렉션을 수행하는 플래시 메모리 시스템. - 제 5항에 있어서,
상기 플래시 변환 계층이 블록 당 상기 수정 요청이 발생한 페이지의 개수 정보를 저장하고, 상기 플래시 메모리의 블록들의 무효 페이지 개수 및 상기 수정 요청이 발생한 페이지 개수를 기초로 빅팀 블록을 선정하여 가비지 컬렉션을 수행하는 플래시 메모리 시스템. - 제 6항에 있어서,
상기 플래시 변환 계층은 상기 플래시 메모리의 블록들의 상기 무효 페이지 개수에서 상기 수정 요청이 발생한 페이지 개수를 뺀 값이 가장 큰 값을 갖는 블록을 빅팀 블록으로 선정하여 가비지 컬렉션을 수행하는 플래시 메모리 시스템. - 플래시 메모리 시스템이 동작하는 방법에 있어서,
플래시 메모리의 데이터가 버퍼캐시에 캐싱된 후 운영체제 또는 응용프로그램이 상기 버퍼캐시에 캐싱된 상기 데이터를 수정하는 명령을 전달한 경우 상기 명령에서 상기 데이터가 플래시 메모리에 저장될 위치정보인 섹터정보를 추출하는 단계;
상기 추출된 섹터정보를 플래시 변환 계층이 인식할 수 있도록 변환하는 단계; 및
상기 변환된 섹터정보를 기초로 상기 플래시 메모리에 대한 주소 사상 또는 가비지 컬렉션 중 하나 이상을 수행하는 단계;
를 포함하는 플래시 메모리 시스템의 동작 방법. - 삭제
- 제 8항에 있어서,
상기 섹터정보는 상기 운영체제 또는 상기 응용프로그램에서 상기 버퍼캐시로 전달되는 명령으로부터 추출되는 플래시 메모리 시스템의 동작 방법. - 제 8항에 있어서,
상기 플래시 변환 계층이 상기 변환된 섹터정보를 기초로 상기 플래시 메모리에서 가비지 컬렉션 수행하는 플래시 메모리 시스템의 동작 방법. - 제 8항에 있어서,
상기 플래시 변환 계층이 상기 섹터정보를 상기 플래시 메모리의 페이지 정보로 변환하고, 블록 당 수정 요청이 발생한 페이지 개수를 기초로 가비지 컬렉션을 수행하는 플래시 메모리 시스템의 동작 방법. - 제 12항에 있어서,
상기 플래시 변환 계층이 블록 당 상기 수정 요청이 발생한 페이지의 개수 정보를 저장하고, 상기 플래시 메모리의 블록들의 무효 페이지 개수 및 상기 수정 요청이 발생한 페이지 개수를 기초로 빅팀 블록을 선정하여 가비지 컬렉션 수행하는 플래시 메모리 시스템의 동작 방법. - 제 13항에 있어서,
상기 플래시 변환 계층은 상기 플래시 메모리의 블록들의 상기 무효 페이지 개수에서 상기 수정 요청이 발생한 페이지 개수를 뺀 값이 가장 큰 값을 갖는 블록을 빅팀 블록으로 선정하여 가비지 컬렉션을 수행하는 플래시 메모리 시스템의 동작 방법.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020110051046A KR101278591B1 (ko) | 2011-05-30 | 2011-05-30 | 플래시 메모리 시스템 및 그 동작 방법 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020110051046A KR101278591B1 (ko) | 2011-05-30 | 2011-05-30 | 플래시 메모리 시스템 및 그 동작 방법 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20120132738A KR20120132738A (ko) | 2012-12-10 |
| KR101278591B1 true KR101278591B1 (ko) | 2013-06-25 |
Family
ID=47516204
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020110051046A Expired - Fee Related KR101278591B1 (ko) | 2011-05-30 | 2011-05-30 | 플래시 메모리 시스템 및 그 동작 방법 |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR101278591B1 (ko) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10635582B2 (en) | 2017-06-12 | 2020-04-28 | SK Hynix Inc. | Memory system for selecting source memory block in garbage collection and operating method of the same |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20080042850A (ko) * | 2005-08-03 | 2008-05-15 | 쌘디스크 코포레이션 | 강화된 호스트 인터페이스 |
| KR20100042455A (ko) * | 2008-10-16 | 2010-04-26 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법 |
| KR20100091782A (ko) * | 2009-02-11 | 2010-08-19 | (주)인디링스 | 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법및 장치 |
| KR20100115090A (ko) * | 2009-04-17 | 2010-10-27 | 서울대학교산학협력단 | 버퍼를 고려한 가비지 컬렉션 기법 |
-
2011
- 2011-05-30 KR KR1020110051046A patent/KR101278591B1/ko not_active Expired - Fee Related
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20080042850A (ko) * | 2005-08-03 | 2008-05-15 | 쌘디스크 코포레이션 | 강화된 호스트 인터페이스 |
| KR20100042455A (ko) * | 2008-10-16 | 2010-04-26 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법 |
| KR20100091782A (ko) * | 2009-02-11 | 2010-08-19 | (주)인디링스 | 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법및 장치 |
| KR20100115090A (ko) * | 2009-04-17 | 2010-10-27 | 서울대학교산학협력단 | 버퍼를 고려한 가비지 컬렉션 기법 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10635582B2 (en) | 2017-06-12 | 2020-04-28 | SK Hynix Inc. | Memory system for selecting source memory block in garbage collection and operating method of the same |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20120132738A (ko) | 2012-12-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8521949B2 (en) | Data deleting method and apparatus | |
| US9697116B2 (en) | Storage system and writing method thereof | |
| US8364931B2 (en) | Memory system and mapping methods using a random write page mapping table | |
| KR102725910B1 (ko) | 사용자 데이터에 대해 선별 잠재 노출 맵핑을 수행하기 위한 장치, 방법, 및 다중 모드 저장 장치 | |
| US8583879B2 (en) | Data storage device, storing medium access method and storing medium thereof | |
| JP5983019B2 (ja) | 制御装置、記憶装置、記憶制御方法 | |
| CN104484283B (zh) | 一种降低固态硬盘写放大的方法 | |
| CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
| CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
| US20120254514A1 (en) | Memory system, controller, and method for controlling memory system | |
| JP2008198208A (ja) | ホストデータ処理装置の動作方法、ホストデータ処理装置並びにデータ格納装置 | |
| WO2016082524A1 (zh) | 一种进行数据存储的方法、装置及系统 | |
| US20110208898A1 (en) | Storage device, computing system, and data management method | |
| CN103294604A (zh) | 闪存器件和使用闪存器件的电子设备 | |
| CN109671458A (zh) | 管理闪存模块的方法及相关的闪存控制器 | |
| KR20100115090A (ko) | 버퍼를 고려한 가비지 컬렉션 기법 | |
| US20120191897A1 (en) | Non-volatile memory system and management method thereof | |
| CN102521114B (zh) | 一种虚拟化环境下的文件系统日志存储系统 | |
| KR101374065B1 (ko) | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 | |
| KR20140094278A (ko) | 반도체 장치 및 이의 동작 방법 | |
| US20100318726A1 (en) | Memory system and memory system managing method | |
| CN110515550B (zh) | 一种sata固态硬盘冷热数据分离的方法及其装置 | |
| KR101191650B1 (ko) | 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법 | |
| KR100995546B1 (ko) | 낸드 플래시 메모리와 비휘발성 램을 사용하는 하이브리드 저장 장치 기반의 데이터베이스 시스템 및 데이터베이스 시스템에서 데이터를 업데이트하는 방법 | |
| KR101278591B1 (ko) | 플래시 메모리 시스템 및 그 동작 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R11-asn-PN2301 St.27 status event code: A-3-3-R10-R13-asn-PN2301 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R11-asn-PN2301 St.27 status event code: A-3-3-R10-R13-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
Fee payment year number: 1 St.27 status event code: A-2-2-U10-U11-oth-PR1002 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| FPAY | Annual fee payment |
Payment date: 20160328 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 4 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| FPAY | Annual fee payment |
Payment date: 20170329 Year of fee payment: 5 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 5 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
Not in force date: 20180620 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE St.27 status event code: A-4-4-U10-U13-oth-PC1903 |
|
| PC1903 | Unpaid annual fee |
Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20180620 St.27 status event code: N-4-6-H10-H13-oth-PC1903 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R11-asn-PN2301 St.27 status event code: A-5-5-R10-R13-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |