KR20090012821A - 플래시 메모리에 최적화된 입출력 제어 방법 및 장치 - Google Patents

플래시 메모리에 최적화된 입출력 제어 방법 및 장치 Download PDF

Info

Publication number
KR20090012821A
KR20090012821A KR1020070076980A KR20070076980A KR20090012821A KR 20090012821 A KR20090012821 A KR 20090012821A KR 1020070076980 A KR1020070076980 A KR 1020070076980A KR 20070076980 A KR20070076980 A KR 20070076980A KR 20090012821 A KR20090012821 A KR 20090012821A
Authority
KR
South Korea
Prior art keywords
data
flash memory
write operation
area
segment
Prior art date
Application number
KR1020070076980A
Other languages
English (en)
Other versions
KR101447188B1 (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 KR1020070076980A priority Critical patent/KR101447188B1/ko
Priority to US12/146,247 priority patent/US8402202B2/en
Priority to PCT/KR2008/004449 priority patent/WO2009017368A2/en
Priority to JP2010519150A priority patent/JP2010535379A/ja
Priority to EP08792964A priority patent/EP2174320A4/en
Publication of KR20090012821A publication Critical patent/KR20090012821A/ko
Application granted granted Critical
Publication of KR101447188B1 publication Critical patent/KR101447188B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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/7202Allocation control and policies
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Abstract

본 발명은 플래시 메모리에 최적화된 입출력 제어 방법 및 장치에 관한 것으로서, 보다 상세하게는 플래시 메모리의 성능을 향상시킬 수 있는 플래시 메모리에 최적화된 입출력 제어 방법 및 장치에 관한 것이다.
본 발명의 실시예에 따른 플래시 메모리에 최적화된 입출력 제어 방법은, 플래시 메모리에 데이터의 랜덤한 기록 연산이 발생하는지 판단하는 단계; 및 상기 랜덤한 기록 연산이 발생하는 것으로 판단되면, 랜덤하게 입력되는 데이터를 상기 플래시 메모리의 기설정된 여분의 영역에 순차적으로 기록하는 단계를 포함한다.
플래시 메모리, 파일 시스템, 랜덤 기록 연산

Description

플래시 메모리에 최적화된 입출력 제어 방법 및 장치{Method and apparatus for controlling I/O to optimize flash memory}
본 발명은 플래시 메모리에 관한 것으로서, 보다 상세하게는 플래시 메모리의 성능을 향상시킬 수 있는 플래시 메모리에 최적화된 입출력 제어 방법 및 장치에 관한 것이다.
일반적으로, 운영 체제(OS, Operating System)는 자신이 설치된 시스템 상에 존재하는 데이터를 관리하기 위해 파일 시스템을 사용한다. 여기서 파일 시스템이란, 파일을 관리하기 위해 가장 먼저 구성되어야 하는 논리적인 구조이다. 예를 들어, 마이크로 소프트 Windows에서의 format 명령은 이러한 파일 시스템을 만들고 초기화하는 과정이다. 이와 같이 파일 시스템이 생성된 후에야, 사용자는 비로소 파일을 저장하거나 삭제할 수 있게 된다.
이러한 파일 시스템은 운영 체제에 따라서 그 종류가 매우 다양하다. Windows 계열의 운영 체제에서는 FAT(File Allocation Table) 또는 NTFS(New Technology File System)라는 파일 시스템이, Unix/Linux 계열의 운영 체제에서는 UFS(Unix File System), EXT2(Extended 2), EXT3(Extended 3), JFS(journaled file system) 등 다양한 파일 시스템이 존재한다.
한편, 플래시 메모리는 전기적으로 데이터의 삭제 및 기록(write)이 가능한 비휘발성 메모리로서, 가볍고 물리적인 충격에 강하면서도 전력 소모가 적어 휴대폰, PDA, 디지털 카메라 등과 같은 휴대용 정보기기의 저장매체로 많이 사용되고 있다. 그러나 EEPROM의 일종인 플래시 메모리에서 데이터를 기록하기 위해서는 삭제 연산을 선행해야 하며 일반적으로 삭제 단위는 기록 단위보다 크다. 이러한 특성은 보조기억장치로 플래시 메모리를 사용하는 경우 일반 하드디스크용 파일 시스템을 그대로 활용하는 것을 어렵게 한다.
따라서 이러한 제약을 감추고 플래시 메모리를 하드디스크와 같은 블록 디바이스로 사용할 수 있도록 파일시스템과 플래시 메모리 사이의 미들웨어인 플래시 변환 계층(Flash Translation Layer)이 제안되어 사용되고 있다. 플래시 변환 계층은 가상의 블록 디바이스 상의 논리적인 위치와 플래시 메모리 상의 물리적인 위치 간의 맵핑(mapping) 정보를 유지하면서, 소정의 논리적인 위치에 대해 기록/판독 연산이 요청되면, 상기 맵핑 정보를 이용하여 논리적인 위치를 물리적인 위치로 변환하는 역할을 수행한다. 특히, 논리적인 위치에 대해 데이터를 변경하는 기록 연산이 요청되는 경우, 논리적인 위치에 대응하는 물리적인 위치를 전기적으로 소거한 후 다시 기록하거나 논리적인 위치를 다른 물리적인 위치로 재맵핑하는 역할을 수행한다.
그러나, 종래의 파일 시스템 및 I/O 스케쥴러(I/O scheduler) 등이 플래시 변환 계층의 동작에 최적화되어 있지 않고 하드 디스크에 최적화되어 있어서 플래 시 변환 계층을 이용한다고 하더라도 플래시 메모리의 성능상 저하가 발생하게 된다. 특히, 플래시 메모리에 랜덤 기록 연산이 발생하였을 때 기록 효율 저하가 나타난다.
본 발명은 상기한 문제점을 개선하기 위해 안출된 것으로, 플래시 메모리의 성능을 향상시킬 수 있는 플래시 메모리에 최적화된 입출력 제어 방법 및 장치를 제공하는 데 그 목적이 있다.
그러나 본 발명의 목적들은 상기에 언급된 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 플래시 메모리에 최적화된 입출력 제어 방법은, 플래시 메모리에 데이터의 랜덤한 기록 연산이 발생하는지 판단하는 단계; 및 상기 랜덤한 기록 연산이 발생하는 것으로 판단되면, 랜덤하게 입력되는 데이터를 상기 플래시 메모리의 기설정된 여분의 영역에 순차적으로 기록하는 단계를 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 플래시 메모리에 최적화된 입출력 제어 장치는, 데이터를 저장하기 위한 플래시 메모리; 및 상기 플래시 메모리에 데이터의 랜덤한 기록 연산이 발생하는지 판단하고, 상기 랜덤한 기록 연산이 발생하는 것으로 판단되면 랜덤하게 입력되는 데이터를 상기 플래시 메모리의 기설정된 여분의 영역에 순차적으로 기록하는 기록 연산 제어부를 포함한다.
상기한 바와 같이 본 발명에 의한 플래시 메모리에 최적화된 입출력 제어 방법 및 장치에 따르면, 플래시 메모리의 성능을 향상시킬 수 있는 효과가 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있으며, 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명의 실시예에 따른 플래시 메모리에 최적화된 입출력 제어 방법 및 장치에 대해 설명하도록 한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다.
이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하 게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 본 발명의 실시예에 따른 플래시 메모리에 최적화된 입출력 제어 장치의 구성을 나타낸 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 플래시 메모리에 최적화된 입출력 제어 장치는, 플래시 메모리(10)와, 파일 시스템(12)과, 기록(write) 연산 제어부(14)와, 판독(read) 연산 제어부(16)를 포함한다. 이러한 플래시 메모리에 최적화된 입출력 제어 장치는 컴퓨터, 디지털 TV, 휴대 전화, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 디지털 카메라, MP3 플레이어 등에 구현될 수 있으나, 이에 한정되는 것은 아니다.
플래시 메모리(10)는 비휘발성 메모리로서, 삭제 연산의 기본 단위인 블록으로 구성되고, 각 블록은 기록/판독 연산의 기본 단위인 여러 개의 섹터로 이루어진다. 이러한 플래시 메모리(10)가 적용된 저장 장치에는 USB 플래시 드라이브(UFD, USB Flash Drive), SSD(Solid State Disk), MMC(multi-media card) 등이 있다.
이러한 플래시 메모리(10)는 본 실시예에서 도 2에 도시된 바와 같이 논리적으로 크게 볼륨(volume) 영역(22), 로그(log) 영역(24), 메타 데이터 영역(26)으로 구분된다. 즉, 본 실시예에서는 기존의 플래시 메모리(10)에 할당되어 있던 볼륨 영역(20)의 크기를 조절하고, 이로 인해 남는 공간을 로그 영역(24)과 메타 데이터 영역(26)으로 할당하여 사용한다.
볼륨 영역(22) 및 로그 영역(24)에는 기록/판독 대상인 데이터 블록이 저장된다. 종래의 경우, 기록 요청된 모든 데이터 블록은 볼륨 영역(20)에 저장되었으나, 랜덤하게 기록 요청된 데이터 블록의 경우 볼륨 영역(20)에 랜덤하게 기록하게 되면 성능 저하가 발생하므로 본 발명에서는 로그 영역(24)에 순차적으로 기록한다. 이 때의 기록은 후술할 로그 영역(24)의 세그먼트 내에서만 순차적으로 기록되 는 것이어도 충분하다.
로그 영역(24)은 복수의 세그먼트들로 구성되며, 세그먼트의 크기는 플래시 메모리(10)의 물리적 연산 단위(예를 들면, 기존 플래시 변환 계층의 로그 블록의 크기), 플래시 변환 계층의 슈퍼블록(SuperBlock) 단위, 혹은 이러한 단위의 배수개로 구성하여 플래시 메모리(10)의 성능을 최대한 발휘할 수 있도록 하는 것이 바람직하다.
각각의 세그먼트는 저장된 데이터 블록 중 유효한 데이터 블록이 0%인 클린(clean) 상태, 유효한 데이터 블록이 x%(x는 양수)인 더티(dirty) 상태가 존재하며, 클린 상태의 세그먼트들의 리스트(이하, '클린 리스트'라 칭함), 더티 상태의 세그먼트들의 리스트(이하, '더티 리스트'라 칭함)가 저장되어 관리된다. 또한, 더티 리스트 중 적어도 하나는 클린 리스트가 존재하지 않을 때 플러시 리스트(flush list)로 저장된다. 이러한 플러시 리스트는 후술할 가비지 컬렉션(garbage collection)에서 삭제될 데이터 블록 리스트로 활용된다. 물론, 클린 리스트가 존재하지 않을 때 플러시 리스트가 저장되는 것에 한정되는 것은 아니며, 주기적으로 혹은 비주기적으로 플러시 리스트의 갱신이 이루어질 수도 있다.
메타 데이터 영역(26)은 메타 데이터가 저장되는 영역으로, 이러한 메타 데이터는 로그 영역(24)과 관련된 맵핑(mapping) 정보를 포함할 수 있다. 로그 영역(24)과 관련된 맵핑 정보는 로그 영역(24)에 데이터 블록이 기록된 경우에 생성되는데, 구체적으로 맵핑 정보는 논리 주소와 실제 데이터 블록이 기록된 로그 영역(24)의 물리 주소 사이의 맵핑 정보, 실제 데이터 블록이 기록된 로그 영역(24) 의 물리 주소와 본 발명이 적용되기 전에 데이터 블록이 원래 기록되어야 할 볼륨 영역(22)의 물리 주소 사이의 맵핑 정보 등을 포함할 수 있다.
한편, 기본적으로, 요청된 논리 주소가 맵핑 정보에 존재하지 않는 경우에는 요청된 논리 주소에 해당하는 물리 주소가 요청된 논리 주소와 동일하다.
여기서, 맵핑 정보는 트리(tree) 방식으로 관리됨으로써 맵핑 정보의 삽입, 삭제 및 갱신을 용이하게 하도록 한다.
한편, 볼륨 영역(22), 로그 영역(24), 메타 데이터 영역(26)은 논리적인 분할을 도시한 것이므로, 물리적으로 서로 연속적으로 존재할 수도 있으며, 비연속적으로 산재하여 존재할 수도 있다.
파일 시스템(12)은 애플리케이션(application)으로부터 기록/판독 요청을 받고, 기록/판독 요청된 논리 섹터 번호(LSN, Logical Sector Number)를 기록 연산 제어부(14)/판독 연산 제어부(16)로 전달한다.
기록 연산 제어부(14)/판독 연산 제어부(16)는 논리 주소에 대한 기록/판독 요청을 물리적 주소에 대한 기록/판독 요청으로 변환한다. 즉, 기록 연산 제어부(14)/판독 연산 제어부(16)는 논리 섹터에 대한 요청을 플래시 메모리(10) 상의 물리적 주소로 변환하여 기록/판독 연산을 수행한다.
기록 연산 제어부(14)/판독 연산 제어부(16)의 구체적인 동작은 각각 도 3 및 도 7을 참조하여 설명하기로 한다.
도 3은 본 발명의 실시예에 따른 기록 연산 제어부(14)의 기록 연산 과정을 나타낸 흐름도이다.
도 3에 도시된 바와 같이, 먼저 파일 시스템(12)으로부터 소정의 논리 섹터 번호를 갖는 데이터 블록에 대한 기록 연산이 요청되면(S10), 기록 연산 제어부(14)는 상기 요청된 데이터 블록이 기설정된 중요 데이터 블록인지를 판단한다(S12). 여기서, 기설정된 중요 데이터 블록은 시스템이 비정상적으로 종료되거나 시스템에 고장이 발생한 경우 파일 시스템(12)을 복구하는 데 사용될 수 있는 정보를 포함하며, 일예로 파일 시스템(12)의 메타 데이터 중 저널(journal)을 포함할 수 있다.
기록 연산이 요청된 데이터 블록이 기설정된 중요 데이터 블록인 것으로 판단되면, 기록 연산 제어부(14)는 상기 요청된 논리 섹터 번호에 대응하는 볼륨 영역(22)의 물리 섹터 번호(=요청된 논리 섹터 번호)에 데이터 블록을 기록한다. 이에, 플래시 메모리(10)의 볼륨 영역(22)에 데이터 블록이 기록되게 된다(S16).
한편, 기록 연산이 요청된 데이터 블록이 기설정된 중요 데이터 블록이 아닌 것으로 판단되면, 랜덤 여부에 관계없이 로그 영역(24)에 순차적으로 기록되어야 하는 데이터 블록인지를 판단한다(S13). 여기서, 랜덤 여부에 관계없이 로그 영역(24)에 순차적으로 기록되어야 효과적인 데이터 블록은 파일 시스템의 메타 데이터 중 일부(기설정된 중요 데이터 블록으로 설정된 메타 데이터(예컨대, 저널)는 제외)일 수 있다. 예를 들면, EXT3의 경우, 메타 데이터는 저널과 일반 메타 데이터로 크게 구분할 수 있는데, 일반 메타 데이터의 경우 랜덤 여부에 관계없이 로그 영역(24)에 순차적으로 기록하는 것이 바람직하다. 데이터 블록을 로그 영역(24)에 순차적으로 기록하는 구체적인 방법은 후술하기로 한다.
한편, 기록 연산이 요청된 데이터 블록이 랜덤 여부에 관계없이 로그 영역(24)에 순차적으로 기록되어야 하는 데이터 블록이 아닌 것으로 판단되면,, 기록 연산 제어부(14)는 데이터 블록이 순차적으로 입력되는 것인지, 아니면 랜덤하게 입력되는 것인지를 확인한다(S14).
구체적으로, 데이터 블록이 순차적으로 입력되는 것인지, 아니면 랜덤하게 입력되는 것인지를 판단하는 방법은 다음과 같다.
먼저, 기록 연산이 요청된 논리 섹터의 번호가 '(논리 섹터의 시작 번호, 논리 섹터의 개수)'와 같은 정보를 포함한다고 가정하자.
예를 들어, 이전에 기록 연산이 요청된 논리 섹터 번호가 (n, m)이고, 현재 기록 연산이 요청된 논리 섹터 번호가 (n+m, i)일 경우 기록 연산 제어부(14)는 데이터 블록이 순차적으로 입력되는 것으로 판단한다.
즉, 이전에 기록 연산이 요청된 논리 섹터와 현재 기록 연산이 요청된 논리 섹터 사이에 빈 섹터가 존재하지 않으면 기록 연산이 요청된 데이터 블록이 순차적으로 입력되는 것이며, 빈 섹터가 존재하면 기록 연산이 요청된 데이터 블록이 랜덤하게 입력되는 것이다.
데이터 블록이 순차적으로 입력되는 것으로 확인되면, 기록 연산 제어부(14)는 요청된 논리 섹터에 해당하는 볼륨 영역(22) 내의 물리 섹터에 상기 데이터 블록을 기록한다(S16). 이 경우 역시 전술한 바와 같이 해당하는 물리 섹터 번호가 요청된 논리 섹터 번호와 동일하므로, 도 4에 도시된 바와 같이 플래시 메모리(10)의 볼륨 영역(22)에 현재 데이터 블록이 이전 기록 요청된 데이터 블록에 이어 순 차적으로 기록되게 된다.
한편, 기록 연산이 요청된 데이터 블록이 랜덤하게 입력되는 것으로 확인되면, 기록 연산 제어부(14)는 로그 영역(24)에 기록할 공간이 존재하는지를 판단한다(S18). 구체적으로, 기록 연산 제어부(14)는 클린 리스트가 존재하는지 확인한다. 클린 리스트가 존재한다면, 도 5와 같이 클린 리스트 중 적어도 하나의 세그먼트 내에 순차적으로 데이터 블록을 기록한다(S20). 이를 위해, 기록 연산 제어부(14)는 기록 연산 요청된 논리 섹터 번호를 클린 세그먼트 내의 물리 섹터 번호로 변환하고, 변환된 물리 섹터 번호에 데이터 블록을 기록한다. 그리고, 메타 데이터 영역(26)에 있는 맵핑 정보를 갱신한다. 이에, 랜덤하게 기록 요청이 되었더라도 로그 영역(24)의 세그먼트 내에 데이터 블록을 순차적으로 기록함으로써 플래시 메모리(10)의 성능을 향상시킬 수 있다.
그리고, 만약 로그 영역(24)에 기록할 공간이 존재하지 않는다면, 예컨대, 클린 리스트가 존재하지 않는다면, 기록 연산 제어부(14)는 더티 리스트 중 적어도 하나의 더티 세그먼트를 플러시 리스트로 저장한다. 그리고, 도 6에 도시된 바와 같이 기록 연산 제어부(14)는 가비지 컬렉션을 수행하여 로그 영역(24)에 기록할 공간(예컨대, 클린 세그먼트)을 생성한다(S22, S24)). 이 때, 로그 영역(24) 내의 유효한 데이터 블록이 메타 데이터 영역(26)의 맵핑 정보를 토대로 볼륨 영역(22)의 원 위치로 기록되고, 이에 따른 맵핑 정보는 다시 갱신된다. 그리고, 다시 기록 연산이 요청되면, 상기의 과정을 반복한다.
가비지 컬렉션을 수행하는 중에 랜덤 기록 연산이 요청되는 경우에는 기존과 동일하게 볼륨 영역(22)에 랜덤하게 기록될 수 있으나, 가비지 컬렉션이 완료되면, 다시 랜덤한 기록 연산이 발생하지 않게 된다.
도 7은 본 발명의 실시예에 따른 판독 연산 제어부(16)의 판독 연산 과정을 나타낸 흐름도이다.
도 7에 도시된 바와 같이, 파일 시스템(12)으로부터 소정의 논리 섹터 번호를 갖는 데이터 블록에 대한 판독 연산이 요청되면(S40), 판독 연산 제어부(16)는 메타 데이터 영역(26)의 메타 데이터를 참조로 해당 데이터 블록이 플래시 메모리(10)에 존재하는지 판단한다(S42).
해당 데이터 블록이 플래시 메모리(10)에 존재하지 않으면 에러를 발생시키고(S44), 존재하면 요청된 논리 섹터 번호의 해당 물리 섹터 번호가 플래시 메모리(10)의 볼륨 영역(22)에 존재하는 것인지, 아니면 로그 영역(24)에 존재하는 것인지 판단한다(S46). 이를 위해, 판독 연산 제어부(16)는 플래시 메모리(10)의 메타 데이터 영역(26)에 존재하는 맵핑 정보를 참조하며, 전술한 바와 같이 맵핑 정보가 트리 형태로 관리됨으로써 판독 연산 제어부(16)의 맵핑 정보에 대한 빠른 접근이 가능하다.
한편, 데이터 블록에 대한 판독 연산은 하나 혹은 둘 이상의 논리 섹터 번호를 갖는 데이터 블록에 대한 판독 연산일 수 있다.
판독 연산 제어부(16)는 요청된 논리 섹터 번호의 해당 물리 섹터 번호가 플래시 메모리(10)의 볼륨 영역(22)에만 존재하는 것으로 판단되면, 도 8과 같이 플래시 메모리(10)의 볼륨 영역(22)의 해당 물리 섹터 번호에서 데이터 블록을 판독 한다(S48).
한편, 판독 연산 제어부(16)는 요청된 논리 섹터 번호의 해당 물리 섹터 번호가 플래시 메모리(10)의 로그 영역(24)에만 존재하는 것으로 판단되면, 도 9와 같이 플래시 메모리(10)의 로그 영역(24)의 해당 물리 섹터 번호에서 데이터 블록을 판독한다(S50).
또한, 판독 연산 제어부(16)는 요청된 논리 섹터 번호의 해당 물리 섹터 번호가 플래시 메모리(10)의 볼륨 영역(22) 및 로그 영역(24)에 동시에 존재하는 것으로 판단되면(이 경우는 둘 이상의 논리 섹터 번호를 갖는 데이터 블록에 대한 판독 연산임), 도 10과 같이 플래시 메모리(10)의 볼륨 영역(22) 및 로그 영역(24)의 해당 물리 섹터 번호들에서 데이터 블록들을 판독한다.
기록 연산 제어부(14) 및 판독 연산 제어부(16)는 각각 하나 혹은 둘 이상의 계층으로 구현될 수도 있고, 기록 연산 제어부(14)와 판독 연산부가 통합된 형태의 계층으로 구현될 수도 있다. 또한, 기록 연산 제어부(14) 및 판독 연산 제어부(16)는 파일 시스템(12) 혹은 플래시 메모리(10) 내에 구현될 수도 있다.
한편, 본 실시예에서는 기록 연산 제어부(14) 및 판독 연산 제어부(16)가 파일 시스템(12)으로부터 요청된 기록/판독 연산을 수행하는 것으로 전술하였으나, 이에 한정되는 것은 아니며, 기록 연산 제어부(14) 및 판독 연산 제어부(16)는 파일 시스템(12) 없이 플래시 메모리(10)가 USB 커넥션을 통해 PC에서 UMS(USB Mass Storage) 형태로 인식되는 경우에도 기록/판독 연산을 수행할 수 있기 때문에 다양한 사용 환경에서 플래시 메모리(10)에 적합하도록 I/O 패턴을 최적화할 수 있다.
한편, 전술한 실시예에서는 '데이터 블록'이라는 표현을 사용하였으나, 데이터가 블록 단위로 기록/판독 요청이 되는 것만을 한정하는 것은 아니며, 하나의 예시에 불과하다는 것을 이해할 수 있을 것이다.
이와 같이, 본 발명은 플래시 메모리에 랜덤 기록 발생시 플래시 메모리의 로그 영역에 순차적으로 데이터를 기록하도록 함으로써, 랜덤 기록에 따른 성능을 향상시킬 수 있다.
이상과 같이 예시된 도면을 참조로 하여, 본 발명에 따른 플래시 메모리에 최적화된 입출력 제어 방법 및 장치에 대하여 설명하였으나, 본 발명은 본 명세서에 개시된 실시예와 도면에 의해 한정되지 않으며, 그 발명의 기술사상 범위 내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
도 1은 본 발명의 실시예에 따른 플래시 메모리에 최적화된 입출력 제어 장치의 구성을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 플래시 메모리의 논리적인 할당 영역을 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 기록 연산 제어부의 기록 연산 과정을 나타낸 흐름도이다.
도 4 내지 도 6은 각각 본 발명의 실시예에 따른 기록 연산의 일예를 나타낸 도면이다.
도 7은 본 발명의 실시예에 따른 판독 연산 제어부의 판독 연산 과정을 나타낸 흐름도이다.
도 8 내지 도 10은 각각 본 발명의 실시예에 따른 판독 연산의 일예를 나타낸 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
10 : 플래시 메모리 12 : 파일 시스템
14 : 기록 연산 제어부 16 : 판독 연산 제어부

Claims (34)

  1. 플래시 메모리에 데이터의 랜덤한 기록 연산이 발생하는지 판단하는 단계; 및
    상기 랜덤한 기록 연산이 발생하는 것으로 판단되면, 랜덤하게 입력되는 데이터를 상기 플래시 메모리의 기설정된 여분의 영역에 순차적으로 기록하는 단계를 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  2. 제 1 항에 있어서,
    상기 랜덤한 기록 연산이 발생하는지 판단하는 단계는,
    이전에 기록 연산이 요청된 논리 섹터와 현재 기록 연산이 요청된 논리 섹터 사이에 빈 섹터가 존재하면 랜덤한 기록 연산이 발생한 것으로 판단하고, 빈 섹터가 존재하지 않으면 순차적인 기록 연산이 발생한 것으로 판단하는 단계를 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  3. 제 2 항에 있어서,
    상기 플래시 메모리는 볼륨 영역을 나타내는 제 1 영역, 상기 기설정된 여분의 영역을 나타내는 제 2 영역 및 메타 데이터를 저장하는 제 3 영역으로 논리적으로 할당되는, 플래시 메모리에 최적화된 입출력 제어 방법.
  4. 제 3 항에 있어서,
    상기 순차적인 기록 연산이 발생하는 것으로 판단되면, 상기 플래시 메모리의 제 1 영역에 데이터를 순차적으로 기록하는 단계를 더 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  5. 제 1 항에 있어서,
    상기 기설정된 여분의 영역은 복수의 세그먼트들로 구성되며, 상기 각 세그먼트들의 크기는 상기 플래시 메모리의 물리적 연산 단위와, 플래시 변환 계층의 슈퍼블록(SuperBlock) 단위와, 상기 단위들의 배수 중 어느 하나로 구성되는, 플래시 메모리에 최적화된 입출력 제어 방법.
  6. 제 5 항에 있어서,
    상기 랜덤하게 입력되는 데이터를 순차적으로 기록하는 단계는
    상기 세그먼트 내에 순차적으로 기록하는 단계를 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  7. 제 5 항에 있어서,
    상기 각 세그먼트는 저장된 데이터 중 유효한 데이터가 0%인 클린(clean) 상태, 유효한 데이터가 x%(x는 양수)인 더티(dirty) 상태가 존재하며;
    상기 클린 상태의 세그먼트들의 리스트, 상기 더티 상태의 세그먼트들의 리 스트를 저장 및 관리하는 단계를 더 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  8. 제 7 항에 있어서,
    상기 랜덤한 기록 연산이 발생하는 것으로 판단되면, 상기 클린 상태의 세그먼트들의 리스트가 존재하는지 확인하는 단계; 및
    상기 확인 결과, 상기 클린 상태의 세그먼트들의 리스트가 존재한다면 상기 적어도 하나의 클린 상태의 세그먼트 내에 순차적으로 데이터를 기록하는 단계를 더 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  9. 제 8 항에 있어서,
    상기 확인 결과, 상기 클린 상태의 세그먼트들의 리스트가 존재하지 않는다면 상기 적어도 하나의 더티 상태의 세그먼트를 플러시 리스트(flush list)로 저장하는 단계; 및
    상기 플러시 리스트를 참조하여 상기 더티 상태의 세그먼트를 클린 상태의 세그먼트로 전환하는 단계를 더 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  10. 제 9 항에 있어서,
    상기 클린 상태의 세그먼트로 전환하는 단계는,
    상기 기설정된 여분의 영역에 기록된 유효한 데이터를 상기 기설정된 여분의 영역과 논리적으로 구분된 볼륨 영역에 기록하는 단계를 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  11. 제 10 항에 있어서,
    상기 클린 상태의 세그먼트로 전환하는 중에 상기 랜덤한 기록 연산이 발생하면, 상기 랜덤하게 입력되는 데이터를 상기 볼륨 영역에 랜덤하게 기록하는 단계를 더 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  12. 제 3 항에 있어서,
    상기 메타 데이터는 논리 주소와 실제 데이터가 기록된 물리 주소 사이의 맵핑 정보, 데이터가 실제 기록된 제 2 영역의 물리 주소와 데이터가 원래 기록되어야 할 제 1 영역의 물리 주소 사이의 맵핑 정보를 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  13. 제 12 항에 있어서,
    상기 맵핑 정보는 트리 방식으로 관리되며 실시간으로 갱신되는, 플래시 메모리에 최적화된 입출력 제어 방법.
  14. 제 4 항에 있어서,
    상기 플래시 메모리에 데이터의 판독 연산이 발생하는 경우, 상기 제 1 영역과 상기 제 2 영역 중 적어도 하나에서 해당 데이터를 판독하는 단계를 더 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  15. 제 3 항에 있어서,
    상기 랜덤한 기록 연산에 대한 데이터가 기설정된 중요 데이터인지를 판단하는 단계;
    상기 기설정된 중요 데이터인 경우 상기 제 1 영역에 기록하는 단계를 더 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  16. 제 15 항에 있어서,
    상기 기설정된 중요 데이터는 시스템이 비정상적으로 종료되거나 시스템에 고장이 발생한 경우 파일 시스템을 복구하는 데 사용될 수 있는 정보를 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  17. 제 1 항에 있어서,
    상기 기설정된 여분의 영역이 비어 있지 않으면, 상기 기설정된 여분의 영역 중 적어도 일부를 클린(clean)하게 만드는 단계를 더 포함하는, 플래시 메모리에 최적화된 입출력 제어 방법.
  18. 데이터를 저장하기 위한 플래시 메모리; 및
    상기 플래시 메모리에 데이터의 랜덤한 기록 연산이 발생하는지 판단하고, 상기 랜덤한 기록 연산이 발생하는 것으로 판단되면 랜덤하게 입력되는 데이터를 상기 플래시 메모리의 기설정된 여분의 영역에 순차적으로 기록하는 기록 연산 제어부를 포함하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  19. 제 18 항에 있어서,
    상기 기록 연산 제어부는, 이전에 기록 연산이 요청된 논리 섹터와 현재 기록 연산이 요청된 논리 섹터 사이에 빈 섹터가 존재하면 랜덤한 기록 연산이 발생한 것으로 판단하고, 빈 섹터가 존재하지 않으면 순차적인 기록 연산이 발생한 것으로 판단하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  20. 제 19 항에 있어서,
    상기 플래시 메모리는 볼륨 영역을 나타내는 제 1 영역, 상기 기설정된 여분의 영역을 나타내는 제 2 영역 및 메타 데이터를 저장하는 제 3 영역으로 논리적으로 할당되는, 플래시 메모리에 최적화된 입출력 제어 장치.
  21. 제 20 항에 있어서,
    상기 기록 연산 제어부는 상기 순차적인 기록 연산이 발생하는 것으로 판단되면, 상기 플래시 메모리의 제 1 영역에 데이터를 순차적으로 기록하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  22. 제 18 항에 있어서,
    상기 기설정된 여분의 영역은 복수의 세그먼트들로 구성되며, 상기 각 세그먼트들의 크기는 상기 플래시 메모리의 물리적 연산 단위와, 플래시 변환 계층의 슈퍼블록(SuperBlock) 단위와, 상기 단위들의 배수 중 어느 하나로 구성되는, 플래시 메모리에 최적화된 입출력 제어 장치.
  23. 제 22 항에 있어서,
    상기 기록 연산 제어부는 상기 랜덤하게 입력되는 데이터를 상기 세그먼트 내에 순차적으로 기록하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  24. 제 22 항에 있어서,
    상기 각 세그먼트는 저장된 데이터 중 유효한 데이터가 0%인 클린(clean) 상태, 유효한 데이터가 x%(x는 양수)인 더티(dirty) 상태가 존재하며;
    상기 기록 연산 제어부는 상기 클린 상태의 세그먼트들의 리스트, 상기 더티 상태의 세그먼트들의 리스트를 저장 및 관리하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  25. 제 24 항에 있어서,
    상기 기록 연산 제어부는 상기 랜덤한 기록 연산이 발생하는 것으로 판단되면, 상기 클린 상태의 세그먼트들의 리스트가 존재하는지 확인하고, 상기 확인 결과, 상기 클린 상태의 세그먼트들의 리스트가 존재한다면 상기 적어도 하나의 클린 상태의 세그먼트 내에 순차적으로 데이터를 기록하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  26. 제 25 항에 있어서,
    상기 기록 연산 제어부는 상기 확인 결과, 상기 클린 상태의 세그먼트들의 리스트가 존재하지 않는다면 상기 적어도 하나의 더티 상태의 세그먼트를 플러시 리스트(flush list)로 저장하고, 상기 플러시 리스트를 참조하여 상기 더티 상태의 세그먼트를 클린 상태의 세그먼트로 전환하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  27. 제 26 항에 있어서,
    상기 기록 연산 제어부는 상기 클린 상태의 세그먼트로 전환시 상기 기설정된 여분의 영역에 기록된 유효한 데이터를 상기 기설정된 여분의 영역과 논리적으로 구분된 볼륨 영역에 기록하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  28. 제 27 항에 있어서,
    상기 기록 연산 제어부는 상기 클린 상태의 세그먼트로 전환하는 중에 상기 랜덤한 기록 연산이 발생하면, 상기 랜덤하게 입력되는 데이터를 상기 볼륨 영역에 랜덤하게 기록하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  29. 제 20 항에 있어서,
    상기 메타 데이터는 논리 주소와 실제 데이터가 기록된 물리 주소 사이의 맵핑 정보, 데이터가 실제 기록된 제 2 영역의 물리 주소와 데이터가 원래 기록되어야 할 제 1 영역의 물리 주소 사이의 맵핑 정보를 포함하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  30. 제 29 항에 있어서,
    상기 맵핑 정보는 트리 방식으로 관리되며 실시간으로 갱신되는, 플래시 메모리에 최적화된 입출력 제어 장치.
  31. 제 21 항에 있어서,
    상기 플래시 메모리에 데이터의 판독 연산이 발생하는 경우, 상기 제 1 영역과 상기 제 2 영역 중 적어도 하나에서 해당 데이터를 판독하는 판독 연산 제어부를 더 포함하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  32. 제 20 항에 있어서,
    상기 기록 연산 제어부는 상기 랜덤한 기록 연산에 대한 데이터가 기설정된 중요 데이터인지를 판단하고, 상기 기설정된 중요 데이터인 경우 상기 제 1 영역에 기록하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  33. 제 32 항에 있어서,
    상기 기설정된 중요 데이터는 시스템이 비정상적으로 종료되거나 시스템에 고장이 발생한 경우 파일 시스템을 복구하는 데 사용될 수 있는 정보를 포함하는, 플래시 메모리에 최적화된 입출력 제어 장치.
  34. 제 18 항에 있어서,
    상기 기록 연산 제어부는 상기 기설정된 여분의 영역이 비어 있지 않으면, 상기 기설정된 여분의 영역 중 적어도 일부를 클린(clean)하게 만드는, 플래시 메모리에 최적화된 입출력 제어 장치.
KR1020070076980A 2007-07-31 2007-07-31 플래시 메모리에 최적화된 입출력 제어 방법 및 장치 KR101447188B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020070076980A KR101447188B1 (ko) 2007-07-31 2007-07-31 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
US12/146,247 US8402202B2 (en) 2007-07-31 2008-06-25 Input/output control method and apparatus optimized for flash memory
PCT/KR2008/004449 WO2009017368A2 (en) 2007-07-31 2008-07-30 Input/output control method and apparatus optimized for flash memory
JP2010519150A JP2010535379A (ja) 2007-07-31 2008-07-30 フラッシュメモリに最適化された入出力制御方法および装置
EP08792964A EP2174320A4 (en) 2007-07-31 2008-07-30 FLASH MEMORY OPTIMIZED INPUT / OUTPUT CONTROL METHOD AND DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070076980A KR101447188B1 (ko) 2007-07-31 2007-07-31 플래시 메모리에 최적화된 입출력 제어 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20090012821A true KR20090012821A (ko) 2009-02-04
KR101447188B1 KR101447188B1 (ko) 2014-10-08

Family

ID=40305058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070076980A KR101447188B1 (ko) 2007-07-31 2007-07-31 플래시 메모리에 최적화된 입출력 제어 방법 및 장치

Country Status (5)

Country Link
US (1) US8402202B2 (ko)
EP (1) EP2174320A4 (ko)
JP (1) JP2010535379A (ko)
KR (1) KR101447188B1 (ko)
WO (1) WO2009017368A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862840B2 (en) 2011-11-02 2014-10-14 Samsung Electronics Co., Ltd. Distributed storage system, apparatus, and method for managing distributed storage in consideration of request pattern
KR20170102772A (ko) * 2016-03-02 2017-09-12 한국전자통신연구원 로그 구조 파일 시스템의 메타 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR20180130740A (ko) * 2017-05-30 2018-12-10 에스케이하이닉스 주식회사 컨트롤러 및 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190008643A (ko) * 2017-07-17 2019-01-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979264B2 (en) * 2008-02-26 2011-07-12 Streaming Networks (Pvt) Ltd System and method for interfacing a media processing apparatus with a computer
TWI398770B (zh) * 2008-07-08 2013-06-11 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
KR101861170B1 (ko) 2011-08-17 2018-05-25 삼성전자주식회사 마이그레이션 관리자를 포함하는 메모리 시스템
US8924632B2 (en) * 2011-09-16 2014-12-30 Apple Inc. Faster tree flattening for a system having non-volatile memory
KR101563736B1 (ko) * 2013-12-24 2015-11-06 전자부품연구원 가상자원의 위치정보 매핑 방법 및 장치
KR102275710B1 (ko) 2015-02-02 2021-07-09 삼성전자주식회사 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
TWI563507B (en) * 2015-07-01 2016-12-21 Phison Electronics Corp Memory management method, memory control circuit unit and memry storage apparatus
US20170161202A1 (en) * 2015-12-02 2017-06-08 Samsung Electronics Co., Ltd. Flash memory device including address mapping for deduplication, and related methods
KR102314784B1 (ko) * 2018-04-17 2021-10-19 한국과학기술원 Ftl 관리 장치 및 방법
KR20210012085A (ko) 2019-07-23 2021-02-03 삼성전자주식회사 저널 리플레이를 개선하기 위한 스토리지 장치, 그것의 동작 방법, 및 스토리지 장치를 포함하는 전자 장치
KR20210068699A (ko) 2019-12-02 2021-06-10 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
KR20220077691A (ko) 2020-12-02 2022-06-09 에스케이하이닉스 주식회사 호스트, 메모리 컨트롤러 및 메모리 장치를 포함하는 전자 시스템 및 이의 동작 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US586083A (en) * 1897-07-06 Territory
JPH10154101A (ja) 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
JP2000047832A (ja) 1998-07-27 2000-02-18 Toshiba Corp ディスクアレイ装置、及びそのデータ制御方法
JP2001075848A (ja) 1999-09-09 2001-03-23 Nec Corp ファイルシステムのファイル管理方法
US6826650B1 (en) * 2000-08-22 2004-11-30 Qlogic Corporation Disk controller configured to perform out of order execution of write operations
JP3592640B2 (ja) 2001-01-09 2004-11-24 株式会社東芝 ディスク制御システムおよびディスク制御方法
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
KR100484147B1 (ko) 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
EP1556868B1 (en) * 2002-10-28 2007-09-05 SanDisk Corporation Automated wear leveling in non-volatile storage systems
WO2004059651A2 (en) 2002-12-27 2004-07-15 Solid State System Co., Ltd. Nonvolatile memory unit with specific cache
KR100608602B1 (ko) * 2003-12-10 2006-08-03 삼성전자주식회사 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
KR100684942B1 (ko) * 2005-02-07 2007-02-20 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US20080288712A1 (en) * 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
US8332574B2 (en) * 2007-04-30 2012-12-11 Sandisk Il Ltd. Method for efficient storage of metadata in flash memory
US7743203B2 (en) * 2007-05-11 2010-06-22 Spansion Llc Managing flash memory based upon usage history

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862840B2 (en) 2011-11-02 2014-10-14 Samsung Electronics Co., Ltd. Distributed storage system, apparatus, and method for managing distributed storage in consideration of request pattern
KR20170102772A (ko) * 2016-03-02 2017-09-12 한국전자통신연구원 로그 구조 파일 시스템의 메타 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR20180130740A (ko) * 2017-05-30 2018-12-10 에스케이하이닉스 주식회사 컨트롤러 및 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190008643A (ko) * 2017-07-17 2019-01-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Also Published As

Publication number Publication date
US20090037648A1 (en) 2009-02-05
US8402202B2 (en) 2013-03-19
JP2010535379A (ja) 2010-11-18
KR101447188B1 (ko) 2014-10-08
EP2174320A2 (en) 2010-04-14
WO2009017368A2 (en) 2009-02-05
EP2174320A4 (en) 2011-08-24
WO2009017368A3 (en) 2009-03-19

Similar Documents

Publication Publication Date Title
KR20090012821A (ko) 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
JP6304406B2 (ja) ストレージ装置、プログラム、情報処理方法
US8612719B2 (en) Methods for optimizing data movement in solid state devices
US8856469B2 (en) Apparatus and method for logging optimization using non-volatile memory
CN102576293B (zh) 固态存储设备和分层存储系统中的数据管理
KR101288408B1 (ko) 플래시 메모리 시스템의 고속 웨이크-업을 용이하게 하는 방법과 시스템
US8135907B2 (en) Method and system for managing wear-level aware file systems
US8041991B2 (en) System and method for recovering solid state drive data
US11782632B2 (en) Selective erasure of data in a SSD
EP2665065A2 (en) Electronic device employing flash memory
KR20110117045A (ko) 인덱스 페이지 복구
US9146928B1 (en) Techniques for storing metadata of a filesystem in persistent memory
US10521148B2 (en) Data storage device backup
KR101336258B1 (ko) 비휘발성 메모리의 데이터 처리 장치 및 방법
KR100703807B1 (ko) 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
US8862819B2 (en) Log structure array
CN110674056B (zh) 一种垃圾回收方法及装置
KR20180002259A (ko) 계층적 플래시 변환 레이어 구조 및 그 설계 방법
US20170017405A1 (en) Systems and methods for improving flash-oriented file system garbage collection
US20170017406A1 (en) Systems and methods for improving flash-oriented file system garbage collection
JP2010237907A (ja) ストレージ装置および記録方法
CN114327292B (zh) 文件管理方法、系统、电子设备和存储介质
EP2267725A1 (en) Memory device for managing the recovery of a non volatile memory
KR101608623B1 (ko) 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법
US11455255B1 (en) Read performance of log-structured file system (LFS)-based storage systems that support copy-on-write (COW) snapshotting

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180831

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190830

Year of fee payment: 6