KR100977709B1 - 플래시메모리 저장장치 및 그에 따른 관리 방법 - Google Patents

플래시메모리 저장장치 및 그에 따른 관리 방법 Download PDF

Info

Publication number
KR100977709B1
KR100977709B1 KR1020080081499A KR20080081499A KR100977709B1 KR 100977709 B1 KR100977709 B1 KR 100977709B1 KR 1020080081499 A KR1020080081499 A KR 1020080081499A KR 20080081499 A KR20080081499 A KR 20080081499A KR 100977709 B1 KR100977709 B1 KR 100977709B1
Authority
KR
South Korea
Prior art keywords
flash memory
data
block
address
stored
Prior art date
Application number
KR1020080081499A
Other languages
English (en)
Other versions
KR20100022811A (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 KR1020080081499A priority Critical patent/KR100977709B1/ko
Publication of KR20100022811A publication Critical patent/KR20100022811A/ko
Application granted granted Critical
Publication of KR100977709B1 publication Critical patent/KR100977709B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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

Abstract

본 문서는 다수의 페이지를 포함하는 블록들로 이루어지는 플래시메모리에 대해 사용자로부터 논리적 페이지 주소를 통해 데이터에 대한 연산 요청을 입력받으면 논리적 페이지 주소를 상기 플래시메모리의 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블을 참조하여, 확인되는 블록에 대해 상기 요청된 연산을 처리하는 것을 특징으로 하는 플래시메모리 저장장치 및 관리방법이 개시된다. 이에 따르면, 플래시메모리에 대한 연산 처리 속도를 향상시킬 수 있는 효과가 있다.
플래시메모리, 매핑 테이블, 처리 속도

Description

플래시메모리 저장장치 및 그에 따른 관리 방법{A FLASH MEMORY STORAGE DEVICE AND A MANAGE METHOD USING THE SAME}
본 문서는 플래시메모리 저장장치에 관한 것으로서, 보다 구체적으로는 플래시메모리의 접근 속도 성능을 향상시킬 수 있는 플래시메모리 저장장치 및 그 관리방법에 관한 것이다.
플래시메모리는 데이터의 기록 및 삭제가 자유로운 램(RAM: Random Access Memory)의 장점과 전원 공급 없이도 저장된 데이터를 보존하는 롬(ROM: Read Only Memory)의 장점을 동시에 지니고 있어, 최근 디지털 카메라,PDA, MP3 플레이어와 같은 휴대용 전자기기의 저장 매체로 널리 사용되고 있다.
이러한 플래시메모리에서는 이전의 데이터를 수정하고자 하는 경우, 해당 데이터를 포함하는 블록을 삭제한 후 데이터를 다시 기록해야 하는데, 일 예로, 글자나 알파벳을 하나씩 수정하여도 '삭제'키를 눌러 전체 단어를 다 삭제한 후 다시 수정된 내용을 포함한 전체를 다시 기록하는 것과 같다.
이와 같은 플래시메모리의 기록 전 삭제(erase before write) 특성 때문에 플래시메모리에 기록된 데이터의 물리 주소(Physical Address)가 변경되어도 동일 한 논리 주소(Logical Address)로 플래시메모리에 기록된 데이터에 접근할 수 있도록 논리-물리 매핑(logical-physical mapping) 방법이 지원되는 것이 일반적이다.
논리-물리 매핑 방법은 특정 데이터에 대한 논리 주소와 물리 주소간의 매핑 정보를 소정의 매핑 테이블(mapping table)을 통해 관리하는 것으로, 페이지 매핑 방법을 예로 들 수 있다.
도 1은 종래의 페이지 매핑 방법에 따른 플래시메모리 액세스 방법을 개략적으로 나타낸 것이다. 도 1에 도시한 바와 같이, 페이지 매핑 방법은 플래시메모리의 페이지 단위로 매핑 정보를 유지하여 논리 페이지 주소를 이용한 플래시메모리의 물리 페이지 접근이 가능하도록 하는 것이다.
일 예로, 소정의 데이터에 대해 기록 동작 요구와 함께 논리 페이지 번호(Logical Page Number: LPN)가 9번으로 지정되면, 플래시메모리 액세스 장치에서는 매핑 테이블을 참조하여 LPN 9번에 상응하는 물리 페이지 번호(Physical Page Number: PPN)인 PPN 6번을 검색한다. 그 다음, 플래시메모리의 6번 페이지에 해당 데이터를 기록하는데, 만일, 해당 페이지에 다른 데이터가 기록되어 있으면 플래시메모리의 비어 있는 물리 페이지에 데이터를 기록하고 매핑 테이블에서 LPN 9번에 상응하는 PPN을 변경시킨다.
이러한 플래시메모리는 기존의 램(RAM)이나 비휘발성 저장 장치, 마그네틱 등과 마찬가지로 특정 위치에 저장된 데이터를 임의로 접근할 수 있지만, 데이터를 수정하거나 삭제하는 방법에 있어서는 기존의 저장장치와 다르게 삭제블록(Erase block)을 기본단위로 하여 액세스가 이루어진다.
이상 및 이하에서 사용되는 용어 가운데 물리적으로 연속된 주소를 갖는 바이트들을 페이지라 하는데, 페이지(Page)는 플래시메모리에 대한 읽기/쓰기 등 연산의 기본 단위가 되고, 다수의 페이지들로 구성되는 블록(Block)은 플래시메모리에서 한번의 삭제 연산으로 지울 수 있는 삭제 연산의 기본 단위가 된다.
이와 같이 블록이 다수의 페이지들로 구성되는 경우에는, 삭제 연산의 기본 단위와 읽기/쓰기 등 연산의 기본 단위의 크기가 서로 달라지게 되는데, 이는 플래시메모리에 저장된 데이터 수정시 페이지 단위의 수정 요청에도 불구하고 상술한 기록 전 삭제(erase before write) 특성 때문에 블록 단위의 삭제 연산이 수반되어야 하는 문제의 원인이 된다.
도 2에는 종래의 플래시메모리에 대한 데이터 수정 방법이 개략적으로 나타난다. 도 2를 참조하면 알 수 있듯이 도 2의 데이터 b1을 수정하고자 하는 경우 b1이 포함되는 블록 전체에 대해 수정이 이루어져야 하고 따라서 b1에 대한 단계 S20의 수정뿐만 아니라 동일한 블록에 포함되는 a1 및 c1에 대해 단계 S10의 복사와 단계 S30에 대한 복사가 함께 이루어지고, 단계 S40에 대한 삭제 또한 수행되어야 수정이 완료될 수 있다.
즉, 플래시메모리에 대한 수정 연산 처리에는 삭제 연산이 반드시 수반되고 플래시 메모리에 대한 읽기/쓰기 등 연산의 기본 단위인 페이지 크기보다 삭제 연산의 기본 단위인 블록 크기가 더 크기 때문에 한 블록에 포함된 데이터를 수정하기 위해서는 그 블록에 포함되는 다른 데이터까지 모두 다시 기록해야 한다. 이는 플래시메모리의 속도 저하 문제에 대한 직접적인 원인이 되고, 전원이 갑자기 끊기 는 등과 같은 문제가 발생하였을 경우 데이터를 손실하게 되는 불안요소가 있어 개선의 필요가 있다.
본 문서는 상술한 배경기술에 있어서 플래시메모리의 데이터 처리 속도를 높일 수 있는 플래시메모리 저장장치 및 그 관리방법 제공을 해결 과제로 한다.
상술한 과제를 해결하기 위한 일 수단으로서의 플래시메모리 저장장치는 다수의 물리적 페이지를 포함하는 블록들로 이루어지는 플래시메모리, 사용자로부터 논리적 페이지 주소를 통해 데이터에 대한 연산 요청을 입력받는 입력부, 하나의 논리적 페이지에 대해 다수의 물리적 페이지를 포함하는 하나의 물리적 블록이 할당되도록, 논리적 페이지 주소를 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블 및 상기 매핑 테이블을 참조하여 상기 연산 요청에 대한 논리적 페이지 주소에 해당하는 물리적 블록 주소를 확인하고, 상기 확인된 물리적 블록 주소에 상응하는 블록에 포함되는 페이지에 대해 상기 요청된 연산을 처리하는 연산부를 포함한다.
상술한 과제를 해결하기 위한 다른 수단으로서의 다수의 페이지를 포함하는 블록들로 이루어지는 플래시메모리에 대한 관리방법은, 사용자로부터 논리적 페이지 주소를 통해 데이터에 대한 연산 요청을 입력받는 단계, 상기 논리적 페이지 주소를 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블을 참조하여, 상기 연산 요청에 대한 논리적 페이지 주소에 해당하는 물리적 블록 주소를 확인하는 단계 및 상기 확인된 물리적 블록 주소에 상응하는 블록에 포함되는 페이지에 대해 상기 요청된 연산을 처리하는 단계를 포함한다.
상기 데이터가, 상기 플래시메모리에 대한 파일시스템정보를 포함하는 메타데이터인 경우에 대해, 상기 논리적 페이지 주소를 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블이 사용될 수 있다.
상기 연산 요청이 상기 데이터에 대한 수정 요청인 경우, 상기 데이터에 대한 삭제 없이 상기 데이터가 저장된 블록 내 사용가능한 다른 페이지에 수정된 데이터를 기록할 수 있다.
상기 플래시메모리의 다수에 페이지에 대한 연산 요청이 있는 경우, 상기 플래시메모리에 대한 플래시메모리정보 및 파일시스템정보를 통해 결정되는 오프셋 값을 적용하여 최소 개수의 블록 내에 저장되도록 데이터기록시작위치를 조정할 수 있다.
한편, 상기 플래시메모리에 대한 메타데이터는, 상기 플래시메모리 외의 다른 비휘발성 메모리에 저장될 수도 있다.
본 발명의 일 실시예에 따르면, 하나의 논리적 페이지 주소에 대한 데이터를 위해 다수의 물리적 페이지가 할당되기 때문에 기존의 수정 연산 처리에 반드시 수반되던 삭제 연산이 생략될 수 있다는 효과가 있다.
또한, 본 실시예에 따르면 하나의 블록 내에 하나의 논리적 페이지에 대한 데이터만 저장되기 때문에 블록 내 일부 데이터 수정임에도 수반되던 다른 데이터에 대한 삭제/기록 동작이 생략될 수 있는 효과가 있다.
아울러, 하나의 논리적 페이지 주소에 대해 하나의 블록에 해당하는 수의 물리적 페이지가 할당되기 때문에 즉, 삭제 연산의 기본 단위에 맞추어 할당하여 보다 효율적으로 연산 처리가 수행되는 효과가 있다.
본 발명의 다른 실시예에 따르면, 오프셋 값을 이용하여 데이터기록시작위치를 변경함으로써 하나의 데이터가 최소 개수의 블록 내에 저장될 수 있는 효과가 있다.
또한 그에 따라서, 저장된 데이터에 대한 삭제 또는 수정 처리시 최소 개수의 블록에 대해서만 처리할 수 있어 플래시메모리 연산 처리 속도를 높일 수 있는 효과가 있다.
이하 도면을 참조하여 하나의 논리적 페이지가 다수의 물리적 페이지로 확장 매핑되는 플래시메모리 저장장치 및 플래시메모리 관리방법을 보다 구체적으로 설명한다.
도 3은 본 발명의 실시예에 따른 플래시메모리 저장장치의 구조를 도시한 도면이다.
도 3에 도시된 바와 같이, 본 발명의 실시예에 따른 플래시메모리 저장장치는 입력부(100)와, 연산부(200)와, 저장부(300)와, 플래시메모리(400)를 포함하여 구성될 수 있다.
입력부(100)는 사용자로부터 소정 논리적 주소에 대한 읽기/쓰기/삭제/수정 등의 연산 요청 등을 입력받고, 연산부(200)는 논리적 주소에 대한 연산 요청을 물리적 주소에 대한 연산 요청으로 변환한다. 즉, 연산부(200)는 사용자가 요청한 논리적 주소에 대한 연산 요청을 플래시메모리(400) 상의 물리적 주소로 변환하여, 요청된 연산을 수행한다.
저장부(300)는 연산부(200)가 플래시메모리(400)로 접근하는데 필요한 접근 코드를 저장한다. 예를 들면, 저장부(300)에는 사용자에 의해 요청된 논리적 주소와 플래시메모리(400) 상의 물리적 주소 간의 매핑 관계를 나타내는 매핑 테이블이 저장된다. 이러한 저장부(300)는 플래시메모리(400) 내에 구현될 수도 있고 램(RAM: Random Access Memory)를 비롯한 외부 메모리로 구현될 수도 있다.
그리고, 플래시메모리(400)는 사용자가 기록하려는 데이터를 저장한다. 플래시메모리(400)는 다수개의 페이지를 포함하는 다수개의 블록을 포함하도록 구성된다. 이상 및 이하에서, 블록은 삭제 연산의 기본 단위이고 페이지는 읽기/쓰기 연산의 기본 단위이다.
본 실시예에 따르면, 플래시메모리에 있어서, 하나의 논리적 페이지에 대해 다수의 물리적 페이지가 할당되는 것을 특징으로 한다. 즉, 사용자로부터 하나의 논리적 페이지 주소를 통해 플래시메모리에 대한 연산 요청이 있는 경우에 이 논리적 페이지 주소에 대해 할당되는 다수의 물리적 페이지 중 임의의 페이지에 대해 연산이 수행되게 된다.
특히 하나의 논리적 페이지에 할당되는 물리적 페이지의 수는 하나의 물리적 블록 내에 포함되는 페이지 수로 결정될 수 있다. 이는 하나의 논리적 페이지에 대해 하나의 물리적 블록이 할당되는 것과 동일한 결과가 된다.
상술한 본 실시예를 구현하기 위해서 특정 데이터에 대한 논리 주소와 물리 주소간의 매핑 정보를 소정의 매핑 테이블(mapping table)을 통해 관리하는 논리-물리 매핑 방법으로, 논리적 페이지 주소와 물리적 블록 주소를 매핑하는 방법을 적용할 수 있다.
도 4는 본 발명의 일 실시예에 따른 플래시메모리 관리방법을 설명하기 위한 도면이다.
도 4에 도시한 바와 같이, 본 실시예에 따른 논리-물리 매핑 방법은 플래시메모리의 페이지 단위의 논리적 매핑 정보를 블록 단위의 물리적 매핑 정보로 변환하여 논리 페이지 주소를 이용해서 플래시메모리의 물리 블록으로의 접근이 가능하도록 하는 것이다.
예를 들어, 소정의 데이터에 대해 기록 연산 요청과 함께 논리 페이지 번호(Logical Page Number: LPN)가 3번으로 지정되면, 플래시메모리 액세스 장치에서는 매핑 테이블을 참조하여 LPN 3번에 상응하는 물리 블록 번호(Physical Block Number: PBN)인 PBN 1번을 검색한다. 그 다음, 플래시메모리의 1번 블록 내 임의의 페이지에 해당 데이터를 기록한다.
본 실시예에 따르면, 하나의 논리적 페이지 주소에 대한 데이터를 위해 다수의 물리적 페이지가 할당되기 때문에 기존의 수정 연산 처리에 반드시 수반되던 삭제 연산이 생략될 수 있다는 효과가 있다. 또한, 본 실시예에 따르면 하나의 블록 내에 하나의 논리적 페이지에 대한 데이터만 저장되기 때문에 블록 내 일부 데이터 수정임에도 수반되던 다른 데이터에 대한 삭제/기록 연산이 생략될 수 있다는 효과 도 있다.
하지만, 본 실시예에 따라 하나의 논리적 페이지에 대해 하나의 블록을 할당하게 되면 메모리 용량 측면에서는 불리한 측면이 있다. 즉, 도 4를 통해 설명한 실시예에 따르면, 종래의 논리적 페이지와 물리적 페이지가 일대일로 할당되는 방법과 비교하여 하나의 논리적 페이지에 다수의 물리적 페이지가 할당되기 때문에, 사용자 측면에서는 사용가능한 메모리 용량이 축소되는 것으로 인식하게 될 것이다.
예를 들어, 메모리 전체가 도 4의 실시예가 적용되어 하나의 논리적 페이지가 하나의 블록으로 매핑된다고 가정하면, 사용자 측면에서는 메모리 용량을 전체용량(P)이 하나의 블록 내 포함되는 페이지 수(N)만큼 나누어진 크기의 용량(P/N)으로 인식하게 될 것이다. 따라서, 이하에서 설명되는 실시예에 따르면, 플래시메모리에 저장 영역 중 일부에 대해서만 도 4의 실시예가 적용되고 나머지 저장영역에서는 종래와 마찬가지의 방법이 적용되도록 한다.
도 5는 본 발명의 일 실시예에 따른 플래시메모리의 논리적 영역구분과 그에 따른 물리적 영역할당 방법을 나타낸다.
도 5를 참조하면, 플래시메모리 영역이 크게 메타데이터영역과 데이터영역으로 구분되는 경우 본 실시예에 따르면 메타데이터영역에 대해서만 도 4를 통해 설명한 플래시메모리 관리방법이 적용되도록 한다.
메타데이터영역은 플래시메모리와 관련되는 메타데이터가 저장되는 영역이다. 메타데이터는 파일시스템정보 등과 같이 플래시메모리에 저장되는 데이터를 관 리하기 위한 데이터로서, 특히, 파일시스템정보는 컴퓨터에서 파일과 그 안에 든 자료를 저장하고 찾기 쉽도록 유지 관리하는 방식으로 자료를 저장, 탐색, 접근, 조작하기 위한 추상적 자료 구조의 집합으로 정의되는 파일 시스템(file system)에 따라 데이터 관리가 이루어지기 위하여 필요한 정보이다.
즉, 메타데이터의 경우에는 데이터에 대한 수정이 빈번하게 이루어지는 반면 그 차지하는 메모리 용량이 작다는 특징 때문에 메타데이터가 저장되는 메타데이터영역에 대한 논리적 페이지들에 대해 각 페이지가 다수의 물리적 페이지 특히 하나의 블록으로 할당되도록 하면 수정 횟수에 비해 삭제 횟수를 현저하게 줄일 수 있어 플래시메모리 처리 속도를 크게 향상시킬 수 있을 것이다.
한편, 플래시메모리에 대한 메타데이터는 상기 플래시메모리(400) 외의 다른 비휘발성 메모리, 예를 들어 FRAM(Ferroelectric Random Access Memory)에 저장되도록 하여, 플래시메모리 저장공간에 대한 효율성을 확보하고, 이로써 플래시메모리의 접근 속도를 높일 수도 있을 것이다.
도 6은 본 발명의 일 실시예에 따른 플래시메모리 저장장치를 통해 수정 연산이 처리되는 과정을 설명하기 위한 흐름도이고, 도 7은 본 발명의 일 실시예에 따른 수정 연산이 처리되기 전후의 플래시메모리의 데이터 기록 상태를 나타낸다.
먼저, 단계 S600에서 사용자로부터 플래시메모리에 저장된 b1(71)에 대한 수정 요청을 입력받는다. 이때 수정 요청은 b1(71)의 논리적 페이지 주소를 통해 이루어질 것이다. 그러면 단계 S610에서 b1(71)이 메타데이터영역에 저장된 데이터인지 확인한다. 도 4의 실시예가 메타데이터에 대해서만 적용되는 제한이 없는 경우 에는 단계 S610은 생략될 수 있음은 당연할 것이다.
단계 S610의 확인 결과 b1(71)이 메타데이터인 경우에는 단계 S620으로 진행하여 b1(71)의 논리적 페이지 주소를 본 실시예에 따라 물리적 블록 주소로 변환함으로써 b1(71)이 저장되어 있는 블록(70)을 확인할 수 있다. 그리고, 단계 S630에서 이 블록(70) 내에 사용가능한 여유 페이지가 있는지 여부를 확인한다.
단계 S630의 확인 결과 블록(70) 내 여유 페이지가 존재하는 경우 단계 S640으로 진행하여 블록(70) 내 여유 페이지에 b1이 수정된 데이터인 b2(72)를 저장한다. 그리고, 단계 S650으로 진행하여 b2(72)가 최근 수정된 데이터임을 알 수 있는 플래그 정보를 추가한다.
하지만, 단계 S610의 확인 결과 b1(71)이 메타데이터가 아니거나 단계 S630의 확인 결과 블록(70) 내 여유 페이지가 존재하지 않는 경우에는 단계 S660으로 진행하여 종래의 방법으로 블록(70) 내 저장된 데이터를 삭제하고 수정된 데이터 b2(72)를 저장한다. 이때 필요한 경우 블록(70) 내 저장된 다른 데이터에 대한 복사 처리가 수반될 수 있을 것이다.
상술한 본 실시예에 따르면, 메타데이터 수정시에 해당 블록 내의 여유 페이지가 존재한다면 해당 블록 내에 수정된 데이터를 저장할 수 있어 수정할 때마다 기존 데이터에 대한 삭제 연산을 생략할 수 있고, 하나의 블록 내 다른 데이터에 대한 복사 연산까지도 생략할 수 있어 그 처리 속도가 종래와 비교하여 매우 향상될 것으로 기대된다.
도 8은 본 발명의 다른 실시예에 따른 플래시메모리 관리방법을 설명하기 위 한 흐름도이고 도 9 및 도 10은 본 실시예에 따라 데이터기록시작위치가 오프셋 값으로 조정되기 전후의 데이터 기록 상태를 나타내는 도면이다.
본 실시예에 따르면 플래시메모리의 다수에 페이지에 대한 연산 요청이 있는 경우, 플래시메모리에 대한 플래시메모리정보 및 파일시스템정보를 통해 결정되는 오프셋 값을 적용하여 최소 개수의 블록 내에 저장되도록 조정하는 것을 특징으로 한다.
플래시메모리정보에는 플래시메모리의 읽기/쓰기 단위인 페이지정보, 플래시메모리의 삭제 단위인 블록정보, 또는 플래시메모리의 용량/특성 정보 등이 포함될 수 있다.
그리고, 파일시스템정보에는 컴퓨터가 주소지정을 할 수 있는 최소의 단위로 예를 들어, 512 바이트의 크기로 정의되는 섹터정보, 파일정보, 서로 연관이 있는 파일들을 하나의 그룹으로 만들어서 저장할 수 있도록 구분된 공간으로 정의되는 디렉토리정보, 데이터기록시작위치정보, 또는 디렉토리나 파일들이 저장된 위치 또는 플래시메모리의 특정 저장영역의 사용가부를 확인할 수 있는 파일할당테이블 등이 포함될 수 있다.
도 8을 참조하면, 단계 S800에서 컴퓨터 등에서 플래시메모리 저장장치를 인식하여 플래시메모리정보를 획득하고, 단계 S810에서 플래시메모리에 저장된 메타데이터를 통해 파일시스템정보를 획득한다. 그리고, 단계 S820에서 플래시메모리정보와 파일시스템정보를 통해 플래시메모리에 대한 데이터기록시작위치정보에 대한 오프셋 값을 결정하되 이 오프셋 값은 데이터 연산 처리에 최소 개수의 블록이 이용되도록 결정되어야 할 것이다. 단계 S830에서 이 오프셋 값만큼 변경된 위치에서부터 데이터 기록 등이 이루어지도록 한다.
단계 S820의 오프셋 값을 결정하는 방법의 일례는 플래시메모리정보를 통해 확인되는 페이지 크기 또는 블록 크기를 확인하고 이를 기록 대상이 되는 데이터 크기와 비교하여 필요한 페이지 수 또는 블록 수를 결정할 수 있다. 이때 파일시스템정보를 통해 데이터기록시작위치정보를 확인하면 해당 데이터가 데이터기록시작위치로부터 몇 개의 페이지에 걸쳐 기록될 것인지 알 수 있다.
확인 결과 기록 대상이 되는 데이터 크기는 하나의 블록 내에 기록될 수 있는데 데이터기록시작위치가 임의의 블록 중간 정도로 되어 있어 하나의 블록이 아닌 두 개 이상의 블록에 데이터가 기록되는 경우에, 하나의 블록 내에 데이터 기록이 이루어질 수 있도록 데이터기록시작위치에 대한 오프셋 값을 결정하고 그 오프셋 만큼 변경된 위치부터 데이터 기록을 시작한다.
예를 들어 도 9를 참조하면, 기록 대상이 되는 데이터 크기는 2 페이지인데 데이터기록시작위치가 제1블록(90)의 마지막 페이지로 되어 있어 이 상태로 기록을 하게되면 기록 대상이 되는 데이터 일부는 제1블록(90)에 기록되고 나머지 일부는 제2블록(91)에 기록된다.
다른 예를 들어, 도 10을 참조하면 기록 대상이 되는 데이터 크기는 2 페이지인데 데이터기록시작위치가 제3블록(92)의 마지막 페이지로 되어 있고 특히 이 경우에는 제3블록(92)이 플래시메모리 제1칩의 마지막 블록인 것으로 가정한다. 이 상태로 기록을 하게 되면 기록 대상이 되는 데이터 일부는 제1칩의 제3블록(92)에 기록되고 나머지 일부는 제2칩의 제1블록(93)에 기록된다.
이와 같이 하나의 데이터가 다수의 블록 또는 칩에 기록될수록 그 데이터에 대한 기록/읽기/삭제/수정 등의 연산 처리에 다수의 블록 또는 칩에 대해 수행되어야 하기 때문에 처리 속도가 저하되는 문제가 된다.
따라서 이와 같은 경우에는 본 실시예에 따라 오프셋 값을 1페이지로 결정하여 1페이지만큼 데이터기록시작위치를 변경하여 데이터를 기록한다. 그러면, 도 9의 오른쪽에 도시된 바와 같이 제2블록(90) 내에 기록 대상이 되는 데이터가 모두 기록될 수 있고, 도 10에 도시된 바와 같이 제2칩의 제1블록(93) 내에 기록 대상이 되는 데이터가 모두 기록될 수 있다.
따라서, 본 실시예에 따르면 오프셋 값을 이용하여 데이터기록시작위치를 변경함으로써 하나의 데이터가 최소 개수의 블록 내에 저장될 수 있고, 그에 따라서, 플래시메모리 영역을 효율적으로 관리할 수 있으며, 저장된 데이터에 대한 삭제 또는 수정 처리시 최소 개수의 블록에 대해서만 처리할 수 있어 결국 플래시메모리 데이터 처리 속도를 높이는 효과를 얻을 수 있을 것이다.
상기에서는 도면 및 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 기술적 매핑으로부터 벗어나지 않는 범위 내에서 본 발명은 다양하게 수정 및 변경시킬 수 있음은 이해할 수 있을 것이다.
도 1은 종래의 페이지 매핑 방법에 따른 플래시메모리 액세스 방법을 개략적으로 나타낸 것이다.
도 2는 종래의 플래시메모리에 대한 데이터 수정 방법을 개략적으로 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 플래시메모리 저장장치의 구조를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 플래시메모리 관리방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 플래시메모리의 논리적 영역구분과 그에 따른 물리적 영역할당 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 플래시메모리 저장장치를 통해 수정 연산이 처리되는 과정을 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 수정 연산이 처리되기 전후의 플래시메모리의 데이터 기록 상태를 나타내는 도면이다.
도 8은 본 발명의 다른 실시예에 따른 플래시메모리 관리방법을 설명하기 위한 흐름도이다.
도 9는 본 실시예에 따라 데이터기록시작위치가 오프셋 값으로 조정되기 전후의 데이터 기록 상태를 나타내는 도면이다.
도 10은 본 실시예에 따라 데이터기록시작위치가 오프셋 값으로 조정되기 전 후의 데이터 기록 상태를 나타내는 도면이다.
<도면의 주요부분에 대한 부호의 설명>
100: 입력부 200: 연산부
300: 저장부 400: 플래시메모리

Claims (10)

  1. 다수의 물리적 페이지를 포함하는 블록들로 이루어지는 플래시메모리;
    사용자로부터 논리적 페이지 주소를 통해 데이터에 대한 연산 요청을 입력받는 입력부;
    하나의 논리적 페이지에 대해 다수의 물리적 페이지를 포함하는 하나의 물리적 블록이 할당되도록, 논리적 페이지 주소를 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블; 및
    상기 매핑 테이블을 참조하여 상기 연산 요청에 대한 논리적 페이지 주소에 해당하는 물리적 블록 주소를 확인하고, 상기 확인된 물리적 블록 주소에 상응하는 블록에 포함되는 페이지에 대해 상기 요청된 연산을 처리하는 연산부
    를 포함하는, 플래시메모리 저장장치.
  2. 청구항 1에 있어서,
    상기 데이터는, 상기 플래시메모리에 대한 파일시스템정보를 포함하는 메타데이터인 것을 특징으로 하는, 플래시메모리 저장장치.
  3. 청구항 1에 있어서,
    상기 연산 요청이 상기 데이터에 대한 수정 요청인 경우, 상기 데이터가 저장된 블록 내 사용가능한 다른 페이지에 수정된 데이터를 기록하는 것을 특징으로 하는, 플래시메모리 저장장치.
  4. 청구항 1에 있어서,
    상기 플래시메모리의 다수에 페이지에 대한 연산 요청이 있는 경우, 상기 플래시메모리에 대한 플래시메모리정보 및 파일시스템정보를 통해 결정되는 오프셋 값을 적용하여 최소 개수의 블록 내에 저장되도록 데이터기록시작위치를 조정하는 것을 특징으로 하는, 플래시메모리 저장장치.
  5. 청구항 1에 있어서,
    상기 플래시메모리에 대한 메타데이터는, 상기 플래시메모리 외의 다른 비휘발성 메모리에 저장되는 것을 특징으로 하는, 플래시메모리 저장장치.
  6. 다수의 페이지를 포함하는 블록들로 이루어지는 플래시메모리에 대한 관리방법에 있어서,
    사용자로부터 논리적 페이지 주소를 통해 데이터에 대한 연산 요청을 입력받는 단계;
    논리적 페이지 주소를 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블을 참조하여, 상기 연산 요청에 대한 논리적 페이지 주소에 해당하는 물리적 블록 주소를 확인하는 단계; 및
    상기 확인된 물리적 블록 주소에 상응하는 블록에 포함되는 페이지에 대해 상기 요청된 연산을 처리하는 단계
    를 포함하는, 플래시메모리 관리방법.
  7. 청구항 6에 있어서,
    상기 데이터는, 상기 플래시메모리에 대한 파일시스템정보를 포함하는 메타데이터인 것을 특징으로 하는, 플래시메모리 관리방법.
  8. 청구항 6에 있어서,
    상기 연산 요청이 상기 데이터에 대한 수정 요청인 경우, 상기 데이터가 저장된 블록 내 사용가능한 다른 페이지에 수정된 데이터를 기록하는 것을 특징으로 하는, 플래시메모리 관리방법.
  9. 청구항 6에 있어서,
    상기 플래시메모리의 다수에 페이지에 대한 연산 요청이 있는 경우, 상기 플래시메모리에 대한 플래시메모리정보 및 파일시스템정보를 통해 결정되는 오프셋 값을 적용하여 최소 개수의 블록 내에 저장되도록 데이터기록시작위치를 조정하는 것을 특징으로 하는, 플래시메모리 관리방법.
  10. 청구항 6에 있어서,
    상기 플래시메모리에 대한 메타데이터는 상기 플래시메모리 외의 다른 비휘발성 메모리에 저장되는 것을 특징으로 하는, 플래시메모리 관리방법.
KR1020080081499A 2008-08-20 2008-08-20 플래시메모리 저장장치 및 그에 따른 관리 방법 KR100977709B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080081499A KR100977709B1 (ko) 2008-08-20 2008-08-20 플래시메모리 저장장치 및 그에 따른 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080081499A KR100977709B1 (ko) 2008-08-20 2008-08-20 플래시메모리 저장장치 및 그에 따른 관리 방법

Publications (2)

Publication Number Publication Date
KR20100022811A KR20100022811A (ko) 2010-03-03
KR100977709B1 true KR100977709B1 (ko) 2010-08-24

Family

ID=42175235

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080081499A KR100977709B1 (ko) 2008-08-20 2008-08-20 플래시메모리 저장장치 및 그에 따른 관리 방법

Country Status (1)

Country Link
KR (1) KR100977709B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101157763B1 (ko) 2010-12-27 2012-06-25 서울시립대학교 산학협력단 Trim 명령 처리 기능이 추가된 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및 그 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019940B2 (en) 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
WO2012021847A2 (en) * 2010-08-12 2012-02-16 Fusion-Io, Inc. Apparatus, system and method for caching data
KR101301840B1 (ko) * 2010-12-08 2013-08-29 삼성전자주식회사 비휘발성 메모리 장치의 데이터 처리 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030040817A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 플래시 메모리 관리방법
KR20040072036A (ko) * 2003-02-07 2004-08-16 가부시끼가이샤 르네사스 테크놀로지 메모리시스템
KR100745163B1 (ko) 2006-06-19 2007-08-01 주식회사 셀픽 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
KR20080066959A (ko) * 2005-10-18 2008-07-17 쌘디스크 코포레이션 수정된 데이터 저장 및 핸들링 방법들

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030040817A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 플래시 메모리 관리방법
KR20040072036A (ko) * 2003-02-07 2004-08-16 가부시끼가이샤 르네사스 테크놀로지 메모리시스템
KR20080066959A (ko) * 2005-10-18 2008-07-17 쌘디스크 코포레이션 수정된 데이터 저장 및 핸들링 방법들
KR100745163B1 (ko) 2006-06-19 2007-08-01 주식회사 셀픽 동적 매핑 테이블을 이용한 플래시 메모리 관리방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101157763B1 (ko) 2010-12-27 2012-06-25 서울시립대학교 산학협력단 Trim 명령 처리 기능이 추가된 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및 그 장치

Also Published As

Publication number Publication date
KR20100022811A (ko) 2010-03-03

Similar Documents

Publication Publication Date Title
US6678785B2 (en) Flash management system using only sequential write
JP5295778B2 (ja) フラッシュメモリ管理方法
JP4991320B2 (ja) ホスト装置およびメモリシステム
US7594067B2 (en) Enhanced data access in a storage device
KR101348048B1 (ko) 개선된 플래시 메모리 호환성을 갖는 전자 장치 및 전자 장치의 플래시 메모리 호환성을 개선하는 방법
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
KR100484147B1 (ko) 플래시 메모리 관리 방법
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
JP6034183B2 (ja) 半導体記憶装置
US20150186259A1 (en) Method and apparatus for storing data in non-volatile memory
US20190391756A1 (en) Data storage device and cache-diversion method thereof
US10120606B2 (en) Data storage devices including storage controller circuits to select data streams based on application tags and computing systems including the same
JP2009244962A (ja) メモリシステム
US20110320689A1 (en) Data Storage Devices and Data Management Methods for Processing Mapping Tables
KR20100094241A (ko) 예비 블록을 포함하지 않는 불휘발성 메모리 장치
US8090692B2 (en) Method for using an OTP storage device
KR20080074584A (ko) 메모리 시스템 및 그것의 데이터 저장 방법
KR100977709B1 (ko) 플래시메모리 저장장치 및 그에 따른 관리 방법
US11218164B2 (en) Data storage device and non-volatile memory control method
US8250285B2 (en) Non-volatile dual memory die for data storage devices
US20090204776A1 (en) System for securing an access to flash memory device and method for the same
KR100688463B1 (ko) 물리 메모리의 데이터 기록 및 삭제 방법
KR20090032692A (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
FPAY Annual fee payment

Payment date: 20131112

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140812

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150623

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160810

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170727

Year of fee payment: 8