KR100541642B1 - 플래시 메모리의 데이터 관리 장치 및 방법 - Google Patents

플래시 메모리의 데이터 관리 장치 및 방법 Download PDF

Info

Publication number
KR100541642B1
KR100541642B1 KR1020040016567A KR20040016567A KR100541642B1 KR 100541642 B1 KR100541642 B1 KR 100541642B1 KR 1020040016567 A KR1020040016567 A KR 1020040016567A KR 20040016567 A KR20040016567 A KR 20040016567A KR 100541642 B1 KR100541642 B1 KR 100541642B1
Authority
KR
South Korea
Prior art keywords
job
data
unit
user
flash memory
Prior art date
Application number
KR1020040016567A
Other languages
English (en)
Other versions
KR20050091230A (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 KR1020040016567A priority Critical patent/KR100541642B1/ko
Priority to JP2005046083A priority patent/JP4242849B2/ja
Priority to EP05251361A priority patent/EP1574940A3/en
Priority to US11/077,157 priority patent/US7430632B2/en
Priority to CNB2005100534758A priority patent/CN100397363C/zh
Publication of KR20050091230A publication Critical patent/KR20050091230A/ko
Application granted granted Critical
Publication of KR100541642B1 publication Critical patent/KR100541642B1/ko

Links

Images

Classifications

    • 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
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04HBUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
    • E04H17/00Fencing, e.g. fences, enclosures, corrals
    • E04H17/14Fences constructed of rigid elements, e.g. with additional wire fillings or with posts
    • E04H17/1413Post-and-rail fences, e.g. without vertical cross-members
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04HBUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
    • E04H12/00Towers; Masts or poles; Chimney stacks; Water-towers; Methods of erecting such structures
    • E04H12/22Sockets or holders for poles or posts
    • E04H12/2207Sockets or holders for poles or posts not used
    • E04H12/2215Sockets or holders for poles or posts not used driven into the ground
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04HBUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
    • E04H12/00Towers; Masts or poles; Chimney stacks; Water-towers; Methods of erecting such structures
    • E04H12/22Sockets or holders for poles or posts
    • E04H12/2253Mounting poles or posts to the holder
    • E04H12/2269Mounting poles or posts to the holder in a socket
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04HBUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
    • E04H17/00Fencing, e.g. fences, enclosures, corrals
    • E04H17/14Fences constructed of rigid elements, e.g. with additional wire fillings or with posts
    • E04H17/1413Post-and-rail fences, e.g. without vertical cross-members
    • E04H17/1447Details of connections between rails and posts
    • E04H17/1452Details of connections between rails and posts the ends of the rails are fixed on the lateral sides of the posts
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04HBUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
    • E04H17/00Fencing, e.g. fences, enclosures, corrals
    • E04H17/14Fences constructed of rigid elements, e.g. with additional wire fillings or with posts
    • E04H17/1413Post-and-rail fences, e.g. without vertical cross-members
    • E04H17/1447Details of connections between rails and posts
    • E04H17/1465Details of connections between rails and posts the rails being supported within blind or through holes of the posts
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

본 발명은 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것으로서, 더욱 상세하게는 플래시 메모리에서의 데이터 연산시 응답 시간을 예측하여 응답 시간을 보장할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것이다.
본 발명의 실시예에 따른 플래시 메모리의 데이터 관리 장치는 사용자가 소정이 사용자 프로그램을 통해 요청한 데이터 연산에 필요한 작업을 판단하는 작업 판단부와, 상기 판단된 작업이 등록되는 작업 등록부와, 상기 등록된 작업을 통해 상기 데이터 연산을 수행하는 작업 처리부를 포함한다.
플래시 메모리, 응답 시간

Description

플래시 메모리의 데이터 관리 장치 및 방법{Data managing device and method thereof}
도 1 은 일반적인 맵핑 테이블이 도시된 도면.
도 2 는 종래의 기술에 따른 플래시 메모리의 데이터 관리 장치가 도시된 도면.
도 3 은 종래의 기술에 따른 플래시 메모리의 데이터 관리 방법이 도시된 도면.
도 4a 는 일반적인 단일 논리 섹터 쓰기 수행시 단일 물리 연산이 요구되는 도면.
도 4b 는 일반적인 논리 섹터 쓰기 수행시 여러 번의 물리 연산이 요구되는 도면.
도 5 는 종래의 기술에 따른 플래시 메모리의 데이터 연산 과정이 도시된 도면.
도 6 은 종래의 기술에 따른 플래시 메모리에서 데이터 연산에 따른 응답 시간이 도시된 도면.
도 7 은 본 발명에 따른 플래시 메모리의 데이터 관리 장치가 도시된 도면.
도 8 은 본 발명에 따른 작업 등록부가 도시된 도면.
도 9 는 멀티 프로세스 환경하에서 본 발명에 따른 플래시 메모리의 데이터 관리 장치가 적용된 도면.
도 10 은 본 발명에 따른 플래시 메모리의 데이터 관리 방법이 도시된 도면.
도 11 은 본 발명에 따른 플래시 메모리의 데이터 연산 과정이 도시된 도면.
도 12 는 본 발명에 따른 작업 등록부의 캐싱 방법이 도시된 도면.
<도면의 주요 부분에 관한 부호의 설명>
100: 작업 판단부 200: 작업 등록부
210: 메모리부 300:작업 처리부
본 발명은 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것으로서, 더욱 상세하게는 플래시 메모리에서의 데이터 연산시 응답 시간을 예측하여 응답 시간을 보장할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것이다.
일반적으로, 가전 기기, 통신 기기, 셋탑 박스 등의 내장형 시스템(Embedded System)에서는 데이터를 저장하고 처리하기 위한 저장 매체로 비휘발성 메모리가 많이 사용되고 있다.
상기 비휘발성 메모리 중에서 주로 사용되는 플래시 메모리는 전기적으로 데이터를 삭제하거나 다시 기록할 수 있는 비휘발성 기억 소자로서, 마그네틱 디스크 메모리를 기반으로 하는 저장 매체에 비해 전력 소모가 적으면서도 하드 디스크와 같은 빠른 액세스 타임(Access Time)을 가지며 크기가 작기 때문에 휴대 기기의 저장 매체로 널리 사용되고 있다.
또한, 상기 플래시 메모리는 하드웨어적 특성상 기존의 램(Random Access Memory, RAM)이나 비휘발성 저장 매체, 마그네틱 저장 매체등과 마찬가지로 특정 위치에 저장된 데이터를 임의로 접근할 수 있지만, 데이터를 삭제할 경우에는 기존의 저장 매체와는 다르게 블록(Block) 단위로 삭제가 이루어진다.
즉, 상기 플래시 메모리는 호스트에서는 논리적인 연산 단위인 섹터에 데이터를 쓰는 반면, 상기 섹터에 소정의 데이터를 덮어 씌울 경우에는 상기 섹터가 포함된 블록 전체를 삭제하는 것이다.
이때, 데이터 쓰기 단위와 데이터 삭제 단위의 불일치가 상기 플래시 메모리의 성능을 저하시키는 주요한 이유가 된다.
따라서, 쓰기 전 지우기(Erase before write) 문제를 해결하기 위해 논리 주소(Logocal Address)와 물리 주소(Physical address)의 개념이 도입되었다.
즉, 상기 호스트에서 요청되는 논리 주소에 대한 데이터 읽기/쓰기 연산은 여러 종류의 맵핑 알고리즘에 의해 실제 플래시 메모리의 물리 주소에 대한 읽기/쓰기 연산을 변경된다. 이때, 상기 플래시 메모리의 물리적인 상태를 고려하여 맵핑하기 때문에 상기 플래시 메모리의 성능을 최대화할 수 있다.
다시 말해서, 상기 플래시 메모리는 상기 논리 주소를 물리 주소로 변환할 수 있는 맵핑 테이블이 저장되는 소정의 메모리를 포함할 수 있다.
일반적으로 상기 맵핑 테이블은 SRAM에 저장될 수 있으나, 이에 국한되지 않 고 ROM, PROM, EPROM, 캐쉬, DRAM 등에 저장될 수도 있다.
이러한 맵핑 테이블은 도 1에 도시된 바와 같이, 소정의 논리 주소에 맵핑되는 물리 주소가 나열될 수 있다.
또한, 상기 맵핑 테이블은 데이터의 수정 또는 삭제로 인해 상기 플래시 메모리에서 데이터가 기록된 물리 주소가 변경된 경우, 동일한 논리 주소를 통해 상기 플래시 메모리에 기록된 데이터에 접근하는 경우 사용될 수 있다.
이후, 상기 논리 주소를 상기 맵핑 테이블을 통해 물리 주소로 변환하고, 해당 물리 주소에 데이터 기록 등의 데이터 연산을 수행할 수 있다.
삭제
삭제
삭제
삭제
또한, 상기 플래시 메모리는 크게 소블록 플래시 메모리와 대블록 플래시 메모리로 나뉘어지는데, 상기 소블록 플래시 메모리는 논리적인 연산 단위와 물리적인 연산 단위가 동일한 반면, 상기 대블록 플래시 메모리는 상기 물리적인 연산 단위가 적어도 하나 이상의 논리적인 연산 단위를 포함할 수 있다.
종래의 기술에 따른 플래시 메모리 관리 장치는 도 2에 도시된 바와 같이, 사용자가 소정의 사용자 프로그램을 통하여 플래시 메모리의 데이터 연산을 요청하고, 상기 데이터 연산 완료 응답을 확인할 수 있는 사용자 요청부(11)와, 상기 데이터 연산 요청에 따라 상기 플래시 메모리에서 실제 데이터 연산이 수행되도록 하는 플래시 디바이스 드라이버(13)를 제어하는 제어부(12)를 포함한다.
이때, 상기 플래시 메모리의 소정 섹터에 데이터를 기록하는 경우, 상기 섹터가 포함된 블록 전체를 삭제하는 과정을 거칠 수 있다.
또한, 상기 블록을 삭제하기 전 상기 블록에 유효한 데이터가 기록된 유효 섹터를 다른 블록으로 복사하는 과정을 거칠 수 있다.
이때, 상기 블록 삭제 과정과 복사 과정은 상기 플래시 메모리에서 사용되는 내부 알고리즘에 따라 적어도 1회 이상 수행될 수 있다.
상기와 같이 구성되는 종래의 기술에 따른 플래시 메모리 관리 장치의 동작을 살펴보면 다음과 같다.
종래의 기술에 따른 플래시 메모리 데이터 관리 방법은 도 3에 도시된 바와 같이, 먼저 사용자가 상기 사용자 요청부(11)를 통해 상기 플래시 메모리의 소정 섹터에 데이터 기록을 요청한다.(S11)
이때, 상기 제어부(12)는 상기 요청에 따라 상기 플래시 디바이스 드라이버(13)에게 상기 플래시 메모리의 소정 섹터에 데이터를 기록하기 위한 작업 수행을 요청한다.(S12)
이때, 상기 플래시 메모리의 소정 섹터에 데이터를 기록하기 위한 작업들은 블록 삭제 또는 페이지 기록 등의 작업을 요청한다.
또한, 상기 플래시 메모리의 소정 섹터에 데이터를 기록하기 위한 작업은 해당 섹터가 포함된 블록에 포함된 유효 섹터를 다른 블록으로 복사하는 과정과 해당 섹터가 포함된 블록을 삭제하는 과정 중 적어도 하나 이상을 포함할 수 있다.
상기 플래시 디바이스 드라이버(13)의 요청에 따라 상기 플래시 메모리에서 소정 섹터에 데이터를 기록하기 위한 과정을 수행한다.(S13)
상기 플래시 메모리의 소정 섹터에 데이터 기록이 완료되면, 그에 따른 응답이 상기 제어부(12)를 통해 상기 사용자 요청부(11)로 전달되어 사용자가 상기 데이터 기록의 완료 여부를 확인할 수 있다.(S14)
그러나, 상기한 바와 같은 플래시 메모리 관리 장치 및 방법은 사용자는 상기 사용자 요청부(11)를 통해 데이터 기록을 요청한 다음, 상기 데이터를 기록하기 위해 상기 플래시 메모리 내부에서 수행되는 작업들을 전혀 예측할 수 없다는 문제점이 있다.
즉, 상기 사용자가 상기 플래시 메모리의 소정 섹터에 데이터 기록을 요청한 경우, 도 4a에 도시된 바와 같이, 한번의 물리 페이지 기록으로 상기 데이터 기록이 완료될 수 있고, 도 4b에 도시된 바와 같이, 여러 번의 물리 블록 삭제 및 물리 페이지 기록에 의해 상기 데이터 기록이 완료될 수도 있다.
따라서, 상기 플래시 메모리의 소정 섹터에 데이터를 기록하기 위한 작업은 해당 섹터가 포함된 블록에 포함된 유효 섹터를 다른 블록으로 복사하는 과정과 해당 섹터가 포함된 블록을 삭제하는 과정의 유무 및 횟수에 따라 사용자가 받는 응 답 시간을 예측할 수 없다.
다시 말해서, 도 5에 도시된 바와 같이, 상기 사용자가 상기 사용자 요청부(11)를 통해 데이터 기록을 요청한 다음, 상기 사용자 요청부(11)로 데이터 기록 완료 응답이 올 때까지 상기 사용자 요청부(11)는 다른 작업을 수행하지 않고 대기하게 된다.
이때, 상기 사용자 요청부(11)가 대기하는 시간은 상기 플래시 메모리의 페이지 기록 시간이 200us이고, 블록 삭제 시간이 2ms인 경우를 예를 들어 설명하면, 상기 응답 시간이 빠를 경우 200us에서 늦을 경우 수십 ms 혹은 수 초에 이를 수 있다.
이와 같이, 소정 섹터에 데이터를 기록할 경우 상기 플래시 메모리의 내부 알고리즘이 서로 다르기 때문에 각 섹터에 데이터를 기록하는 경우 도 6에 도시된 바와 같이, 각 응답 시간이 상이하여 실시간 처리시 문제가 발생할 수 있다.
또한, 사용자가 요청한 데이터 연산에 대한 응답 시간이 불규칙하기 때문에 사용자의 요청에 대한 처리를 원활하게 수행할 수 없기 때문에 전체적인 성능을 저해시킬 수 있는 문제점이 있다.
본 발명은 사용자가 요청한 데이터 연산의 응답 시간을 예측할 수 있도록 하여 상기 응답 시간내에 다른 작업을 수행할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에거 명확하게 이해되어 질 수 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 플래시 메모리의 데이터 관리 장치는, 사용자 프로그램을 통해 요청된 데이터 연산에 필요한 작업을 판단하는 작업 판단부와, 상기 판단된 작업의 리스트가 등록되는 작업 등록부와, 상기 리스트에서 소정의 작업을 선택하여 상기 데이터 연산을 수행하는 작업 처리부를 포함한다.
바람직하게는 상기 작업 판단부는 필요시 상기 데이터 연산에 선행되어야 할 작업을 판단한다.
바람직하게는 상기 작업 등록부는 상기 데이터 연산에 필요한 데이터를 저장하는 메모리부를 포함한다.
바람직하게는 상기 작업 처리부는 상기 사용자 프로그램에 의해 할당된 소정 시간 동안 상기 작업 등록부에 등록된 작업을 처리한다.
바람직하게는 상기 작업 처리부는 상기 할당된 시간 경과시 상기 작업의 처리 결과를 상기 사용자 프로그램으로 통보한다.
바람직하게는 멀티 프로세스 지원 환경하에서 상기 작업 처리부가 상기 작업 등록부에 등록된 작업을 처리할 수 있도록 소정 시간을 할당하는 백그라운드 처리부를 더 포함한다.
바람직하게는 상기 백그라운드 처리부는 상기 사용자 요청부로부터 상기 작 업 처리부의 제어를 요청받고, 상기 작업 처리부로부터의 응답을 상기 사용자 요청부로 전달한다.
바람직하게는 상기 작업 처리부는 상기 할당된 시간 경과시 상기 작업의 처리 결과를 상기 백그라운드 처리부로 통보한다.
바람직하게는 상기 작업 처리부는 상기 할당 시간 동안 상기 작업 리스트에 포함된 작업을 순차적 처리, 우선 순위별 처리 및 상기 할당 시간 동안 처리 가능한 작업을 선별적으로 처리하는 선별 처리 중 적어도 하나의 방식으로 처리한다.
바람직하게는 상기 작업 처리부는 상기 데이터 연산이 완료될때까지 다수의 할당된 시간 동안 상기 작업 등록부에 등록된 작업을 처리한다.
바람직하게는 상기 작업 처리부는 상기 사용자가 데이터 읽기를 요청한 경우, 상기 메모리부에 해당 데이터가 존재하는지의 여부를 판단한다.
바람직하게는 상기 판단 결과 상기 메모리부에 해당 데이터가 존재하는 경우, 상기 메모리부로부터 데이터를 읽어 들인다.
바람직하게는 상기 판단 결과 상기 메모리부에 해당 데이터가 존재하지 않는 경우, 실제 플래시 메모리로부터 데이터를 읽어 들인다.
또한, 본 발명의 실시예에 따른 플래시 메모리의 데이터 관리 사용자가 방법은 소정의 사용자 프로그램을 통해 데이터 연산을 요청하는 제 1 단계와, 상기 데이터 연산에 필요한 작업들을 판단하고, 판단된 작업의 리스트를 등록하는 제 2 단계와, 상기 리스트에서 소정의 작업을 선택하여 상기 데이터 연산을 수행하는 제 3 단계를 포함한다.
바람직하게는 상기 제 2 단계는 필요시 상기 데이터 연산에 선행되어야 할 작업들을 판단한다.
바람직하게는 상기 제 2 단계는 상기 데이터 기록시 해당 데이터를 소정의 메모리에 저장하는 과정을 포함한다.
바람직하게는 상기 제 3 단계는 상기 사용자 프로그램에 의해 할당된 소정 시간 동안 상기 작업들을 처리한다.
바람직하게는 상기 제 3 단계는 상기 소정 시간 경과 후 상기 작업의 처리 결과를 상기 사용자 프로그램으로 통보하는 과정을 포함한다.
바람직하게는 상기 제 3 단계는 멀티 프로세스 환경하에서 상기 사용자 프로그램에 의해 상기 작업들을 처리하고 그에 따른 응답을 상기 사용자 프로그램으로 전달하는 백그라운드 처리부가 할당한다.
바람직하게는 상기 제 3 단계는 상기 소정 시간 경과 후 상기 작업의 처리 결과를 상기 백그라운드 처리부로 통보하는 과정을 포함한다.
바람직하게는 상기 제 3 단계는 상기 데이터 연산이 완료될 때까지 다수의 할당된 소정 시간동안 상기 작업들을 처리한다.
바람직하게는 상기 작업 처리는 상기 할당 시간 동안 상기 작업 리스트에 포함된 작업을 순차적 처리, 우선 순위별 처리 및 상기 할당 시간 동안 처리 가능한 작업을 선별적으로 처리하는 선별 처리 중 적어도 하나의 방식으로 처리한다.
바람직하게는 사용자가 상기 사용자 프로그램을 통해 데이터 읽기를 요청하는 제 4 단계와, 상기 요청에 따라 이미 사용자가 요청한 데이터 연산에 필요한 작 업에 상기 데이터 읽기를 요청한 섹터가 존재하는지의 여부를 판단하는 제 5 단계를 더 포함한다.
바람직하게는 상기 제 5 단계는 상기 판단 결과 해당 섹터에 대한 작업이 존재하는 경우, 이미 사용자가 요청한 데이터 연산시 저장된 데이터를 읽어 들인다.
바람직하게는 상기 제 5 단계는 상기 판단 결과 해당 섹터에 대한 작업이 존재하지 않는 경우, 실제 플래시 메모리에서 데이터를 읽어 들인다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범수를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
일반적으로 플래시 메모리는 크게 소블럭 플래시 메모리와 대블럭 플래시 메모리로 나누어진다.
상기 소블럭 플래시 메모리는 실제 물리적인 연산 단위와 논리적인 연산 단 위가 동일한 반면, 상기 대블럭 플래시 메모리는 실제 물리적인 연산 단위가 상기 논리적인 연산 단위보다 큰 크기를 가진다.
여기서, 상기 논리적인 연산 단위는 섹터라 불리우며, 사용자가 소정의 사용자 프로그램을 통하여 데이터 연산 즉, 데이터의 읽기/쓰기 등의 연산을 수행하는 단위이다.
또한, 상기 물리적인 연산 단위는 페이지라 불리우며, 실제 플래시 메모리에서 데이터 연산을 수행하는 단위이다.
이때, 상기 논리적인 연산 단위 및 물리적인 연산 단위는 섹터 및 페이지에 국한되지 않고 사용하는 장치에 따라 다양한 단위로 사용될 수 있다.
따라서, 상기 소블록 플래시 메모리는 섹터와 페이지가 동일한 반면, 상기 대블록 플래시 메모리에서 상기 페이지는 적어도 하나 이상의 섹터를 포함할 수 있다.
상기와 같은 플래시 메모리는 하드웨어적 특성상 이미 소정의 데이터가 쓰여진 섹터에 데이터를 쓰는 경우, 상기 섹터가 포함된 블록 전체를 지우는 작업을 거치게 된다.
또한, 상기 블록내에 유효 섹터가 존재하는 경우, 상기 유효 섹터를 다른 블록으로 복사하는 작업을 거칠 수 있다.
이와 같이, 소정 섹터에 데이터를 쓰는 경우 필요한 작업은 상기 플래시 메모리의 내부 알고리즘에 따라 달라질수 있다.
그리고, 사용자는 사용자가 요청한 데이터 연산이 수행되기 위해 선행되는 작업이 얼마나 수행될 지 예측할 수 없기 때문에 사용자 프로그램은 상기 사용자가 요청한 데이터 연산이 완료되었다는 응답이 올 때까지 대기하게 된다.
따라서, 상기 플래시 메모리의 데이터를 관리하는 소프트웨어가 비선점형 커널 레이어에 존재하는 경우, 상기 플래시 메모리의 데이터를 관리하는 소프트 웨어가 커널 리소스를 독점하여 다른 작업을 수행할 수 없기 때문에 전체적인 시스템의 성능이 저해될 수 있다.
본 실시예는 사용자가 요청한 데이터 연산에 따른 응답 시간을 예측하여 상기 데이터 연산이 수행되는 도중 다른 작업을 수행할 수 있는 플래시 메모리의 데이터 관리 장치에 관한 것으로서, 도 7에 도시된 바와 같이, 사용자에 의해 요청된 데이터 연산에 필요한 작업을 판단하는 작업 판단부(100)와, 상기 판단된 과정 및 상기 데이터 연산에 필요한 작업이 등록되는 작업 등록부(200)와, 상기 등록된 작업을 통해 상기 데이터 연산을 수행하는 작업 처리부(300)를 포함한다.
또한, 사용자가 상기 데이터 연산을 요청하고, 그에 따른 응답을 확인할 수 있는 사용자 요청부(400)와, 상기 작업 처리부(300)의 제어에 따라 플래시 메모리에서 실제 데이터 연산이 수행되도록 하는 플래시 디바이스 드라이버(500)를 더 포함한다.
여기서, 본 실시예에 따른 플래시 메모리의 데이터 관리 장치를 구성하는 구성 요소들 즉, 작업 판단부(100), 작업 등록부(200), 작업 처리부(300), 사용자 요청부(400) 및 플래시 디바이스 드라이버(500)는 각각 개별적인 소프트 웨어로 이루어지거나, 상기 구성 요소들이 모여 하나의 소프트 웨어로 이루어질 수 있다.
또한, 적어도 하나 이상의 구성 요소가 그룹화된 다수의 소프트 웨어로 이루어질 수도 있다.
참고로, 상기 작업 판단부(100)는 논리-물리 맵핑 정보와 그 알고리즘을 담당하는 플래시 맵핑 엔진(Flash Mapping Engine) 등으로 이루어질 수 있고, 상기 작업 등록부(200)는 상기 작업 판단부(100)로부터 판단된 작업들을 보관할 수 있는 큐(Queue) 또는 버퍼 등을 포함할 수 있으나, 이에 한정되지 않는다.
이때, 상기 작업 판단부(100)는 상기 사용자가 상기 사용자 요청부(400)를 통해 소정의 데이터 연산을 요청한 경우, 선행되어야 할 작업을 판단하고, 상기 판단된 작업들을 나열한 작업 리스트를 생성할 수 있다.
즉, 사용자가 소정 섹터에 데이터를 기록하는 경우를 예를 들어 설명하면, 상기 섹터에 데이터를 쓰기 위해 선행되어야 할 작업, 예를 들어 상기 섹터가 포함된 블록 삭제 또는 상기 섹터가 포함된 블록에 포함된 유효 섹터를 다른 블록으로 복사하는 작업 등을 판단하게 된다.
이와 같이, 상기 작업 판단부(100)에 의해 판단된 작업은 도 8에 도시된 바와 같이, 상기 작업 등록부(200)에 상기 작업 리스트의 형태로 등록될 수 있는데, 상기 작업 등록부(200)는 상기 사용자가 소정 섹터에 데이터 기록을 요청한 경우, 상기 섹터에 쓰여질 데이터를 저장할 수 있는 메모리부(210)를 포함할 수 있다.
이러한 메모리부(210)는 경우에 따라 상기 작업 등록부(200)와, 별도로 이루어질 수 있으며, 상기 메모리부(210)는 캐쉬, ROM, PROM, EPROM, EEPROM, 플래쉬, SRAM 및 DRAM과 같은 형태의 장치들이 포함될 수 있으나, 이에 한정되지는 않는다.
한편, 상기 작업 처리부(300)는 상기 사용자 요청부(400)로부터 소정 시간을 할당 받으면, 상기 작업 등록부(200)에 등록된 상기 작업 리스트에 포함된 작업들을 상기 할당 시간동안 추출하여 처리할 수 있다.
이때, 상기 사용자 요청부(400)를 통해 상기 작업 처리부(300)에 소정의 시간을 할당하게 되면, 상기 작업 처리부(300)는 상기 할당된 시간 동안 처리 가능한 작업을 상기 작업 등록부(200)에서 추출하여 처리 후 상기 사용자 요청부(400)로 응답을 하게 된다.
이러한 응답에는 사용자가 요청한 데이터 연산의 처리 완료 여부에 관한 정보를 포함할 수 있다.
즉, 상기 응답에 상기 데이터 연산에 대한 미처리 정보가 포함되면, 상기 사용자 요청부(400)는 다시 소정의 시간을 할당하게 되고, 그렇지 않은 경우 상기 데이터 연산을 완료하게 된다.
상기 작업 처리부(300)의 작업 처리는 상기 할당된 시간동안 상기 작업 등록부(200)에 등록된 작업 리스트에 나열된 작업을 순차적으로 처리하거나, 소정의 우선 순위에 따라 처리할 수 있다.
또한, 상기 할당 시간 동안 처리 가능한 작업을 선별하여 처리 할 수 있는데, 상기 할당 시간동안 처리 가능한 작업은 상기 작업 리스트에 나열된 작업들을 순차적 또는 우선 순위에 따라 선별할 수 있다.
따라서, 상기 사용자 요청부(400)는 상기 할당된 시간동안 다른 작업을 수행할 수 있어 시스템의 성능이 향상될 수 있다.
또한, 이미 할당된 시간동안 사용자가 요청한 데이터 연산이 완료되지 않은 경우, 상기 데이터 연산이 완료할 때까지 여러 번에 걸쳐 시간을 할당하여 처리하도록 하여 사용자가 상기 사용자 요청부(400)를 통하여 다른 작업을 처리할 수 있다.
상기한 바와 같이, 상기 사용자가 요청한 데이터를 여러 번에 걸쳐 처리하고, 상기 사용자가 사용자 요청부(400)가 다른 작업을 수행할 수 있기 때문에 상기 작업 등록부(200)는 캐시와 같은 역할을 수행할 수 있다.
즉, 상기 사용자가 데이터 기록을 요청한 경우를 예를 들어 설명하면, 사용자의 데이터 기록 요청시 해당 데이터가 상기 작업 등록부(200)의 메모리부(210)에 저장되는데, 상기 작업 처리부(300)에 할당된 시간동안 사용자가 동일한 데이터 읽기를 요청한 경우, 상기 플래시 메모리가 아닌 상기 작업 등록부(200)의 메모리부(210)에서 해당 데이터를 읽어 들일 수 있다.
물론, 상기 작업 등록부(200)의 메모리부(210)에 해당 데이터가 존재하지 않는 경우, 상기 플래시 메모리로부터 직접 데이터를 읽어들일 수 있다.
도 12를 참조로 하여 상기 작업 등록부(200)의 메모리부(210)에 저장된 데이터를 읽어 들이는 방법을 후술한다.
한편, 다른 실시예로 멀티 프로세스 기능을 지원하는 시스템에서는 도 9에 도시된 바와 같이, 상기 작업 처리부(300)를 백그라운드 처리부(600)가 처리할 수 있다.
이러한 백그라운드 처리부(600)는 상기 사용자 요청부(400)의 요청에 따라 상기 작업 처리부(300)를 제어하고, 상기 작업 처리부(300)로부터 응답을 받아 이를 상기 사용자 요청부(400)로 전달하는 역할을 수행할 수 있다.
이때, 상기 사용자는 상기 사용자 요청부(400)를 통해 요청한 데이터 연산에 필요한 작업들이 상기 작업 등록부(200)에 등록되었다는 응답만을 받게 된다.
또한, 상기 사용자 요청부(400)는 상기 백그라운드 처리부(600)로 상기 작업 처리부(300)의 제어를 요청하고, 다른 작업을 수행할 수 있다.
이후, 상기 작업 등록부(200)에 등록된 작업은 상기 백그라운드 처리부(600)가 상기 작업 처리부(300)를 제어하여 시스템의 효율을 최대화시킬 수 있다.
이때, 상기 백그라운드 처리부(600)가 포함된 본 실시예에 따른 플래시 메모리의 데이터 관리 장치의 구성 요소들 즉, 작업 판단부(100), 작업 등록부(200), 작업 처리부(300), 사용자 요청부(400), 플래시 디바이스 드라이버(500) 및 백그라운드 처리부(600)는 각각 개별적인 소프트 웨어로 이루어질 수 있고, 모든 구성 요소가 모여 하나의 소프트 웨어로 이루어질 수 있다.
또한, 적어도 하나의 이상의 구성 요소로 그룹화된 다수의 소프트웨어로 이루어질 수 있다.
상기와 같이 구성된 본 실시예에 따른 플래시 메모리의 데이터 관리 장치의 동작을 살펴보면 다음과 같다.
본 실시예에 따른 플래시 메모리의 데이터 관리 방법은 도 10에 도시된 바와 같이, 먼저 사용자가 상기 사용자 요청부(400)를 통해 소정의 데이터 연산을 요청한다.(S111)
본 실시예는 상기 사용자가 상기 플래시 메모리의 소정 섹터에 데이터를 기록하는 경우를 예를 들어 설명한다.
상기 요청에 따라 상기 작업 판단부(100)에서 상기 사용자에 의해 요청된 데이터 연산을 수행하는데 필요한 작업을 판단하고(S112), 상기 판단된 작업들을 상기 작업 등록부(200)에 등록한다.(S113)
이때, 상기 사용자가 소정 섹터에 데이터를 기록하고자 하는 경우, 상기 작업 판단부(100)는 상기 데이터를 기록하기 위해 선행되어야 할 블록의 삭제 또는 블록에 포함된 유효 섹터를 다른 블록으로 복사하는 작업들을 판단하고, 상기 판단 결과 필요한 작업들의 리스트를 생성하여 이를 상기 작업 등록부(200)에 등록한다.
또한, 상기 사용자가 기록하고자 하는 데이터가 상기 작업 등록부(200)의 메모리부(210)에 함께 등록될 수 있다.
이후, 상기 사용자 요청부(400)는 상기 작업 처리부(300)로 소정 시간을 할당하고, 상기 작업 처리부(300)는 상기 할당된 시간 동안 상기 작업 등록부(200)에 등록된 작업에 대한 처리를 요청한다.(S114)
이때, 상기 작업 처리부(300)에 할당되는 시간은 상기 작업 처리부(300)가 할당된 시간동안 상기 작업 등록부(200)에 등록된 작업을 처리할 수 있도록 한다.
이는 상기 사용자가 요청한 데이터 연산이 완료될때까지 여러 번에 걸쳐 상기 작업 처리부(300)가 소정 시간동안 작업 등록부(200)에 등록된 작업을 나누어 처리하고, 상기 작업 처리부(300)는 상기 작업 처리 결과에 따른 응답을 상기 사용자 요청부(400)로 전달한다.(S115)
이때, 상기 사용자 요청부(400)는 상기 응답에 따라 상기 사용자가 요청한 데이터 연산의 진행 상황 및 완료 여부를 확인할 수 있다.
또한, 상기 응답에는 데이터 연산 수행시 에러가 발생한 경우 해당 에러에 대한 정보를 포함할 수 있다.
따라서, 상기 사용자가 요청한 데이터 연산의 진행 상황을 확인할 수 있기 때문에 상기 사용자가 요청한 데이터 연산 이외에 다른 작업을 수행할 수 있다.
이와 같이 소정 시간동안 상기 작업 등록부(200)에 등록된 작업을 수행하는 과정(S114, S115)은 상기 사용자가 요청한 데이터 연산이 완료되었음을 알리는 응답이 전달될때까지 반복적으로 수행된다.(S116)
상기한 바와 같은 플래시 메모리의 데이터 관리 방법을 도 11을 통해 보다 상세하게 살펴보면, 사용자가 상기 사용자 요청부(400)를 통해 소정의 섹터에 데이터 기록을 요청하면, 상기 작업 판단부(110)는 상기 요청된 데이터 연산을 처리하기 위해 필요한 작업을 판단하고 이를 작업 리스트로 생성하여 상기 작업 등록부(200)에 등록한다.
이때, 상기 작업 처리부(300)는 상기 작업 등록부(200)에 등록된 작업을 소정의 할당된 시간동안 처리하고 그에 따른 응답을 상기 사용자 요청부(400)로 전달하게 된다.
즉, 소정의 데이터를 기록하는 경우를 예를 들어 설명하면, 상기 사용자 요청부(400)에서 제 1응답 시간을 할당하면, 상기 작업 처리부(300)는 상기 제 1 응답 시간 동안 상기 소정의 작업들로 이루어지는 제 1작업 그룹을 처리하고 그에 따 른 응답을 상기 사용자 요청부(400)로 통보한다.
이때, 상기 데이터 기록이 완료되지 않은 경우, 상기 데이터 기록이 완료될때까지 제 2응답 시간 및 제 3응답 시간을 할당하는데, 상기 작업 처리부(300)는 상기 제 2응답 시간 및 제 3응답 시간동안 소정의 작업들로 이루어지는 제 2작업 그룹 및 제 3작업 그룹을 처리할 수 있다.
따라서, 상기 사용자 요청부(400)는 상기 사용자가 요청한 데이터 연산의 진행 상태를 확인할 수 있다.
또한, 상기 할당된 시간동안 상기 사용자 요청부(400)는 다른 작업을 수행할 수 있기 때문에 시스템의 효율이 향상될 수 있다.
즉, 상기 사용자 요청부(400)는 사용자가 소정 섹터에 데이터 기록을 요청한 경우를 예를 들어 설명하면, 상기 할당된 시간동안 데이터 읽기를 요청할 수 있다.
상기와 같이 데이터 기록 수행시 데이터 읽기를 요청하는 경우, 상기 작업 등록부(200)는 일종의 캐시 역할을 수행할 수 있다.
이는 상기 작업 등록부(200)에 데이터 기록시 필요한 데이터가 함께 등록되기 때문에 사용자가 동일한 섹터에 대한 데이터 읽기를 요청한 경우, 상기 작업 등록부(200)에 등록된 데이터를 직접 읽어올 수 있다.
이와 같이 상기 작업 등록부(200)에 등록된 데이터를 직접 읽어올 수 있는 방법은 도 12에 도시된 바와 같이, 사용자가 소정 섹터에 대한 데이터 읽기를 요청한다.(S211)
이때, 상기 사용자가 요청한 섹터에 대한 작업이 상기 작업 등록부(200)에 존재하는지의 여부를 판단한다.(S212)
상기 판단 결과 상기 섹터에 대한 작업이 상기 작업 등록부(200)에 존재할 경우, 상기 작업 등록부(200)에서 데이터를 읽어 들인다.(S213)
만일, 상기 판단 결과 상기 섹터에 대한 작업이 상기 작업 등록부(200)에 존재하지 않을 경우, 상기 플래시 메모리에서 직접 데이터를 읽어 들인다.(S214)
한편, 다른 실시예로 멀티 프로세스 기능을 지원하는 시스템에서는 상기 작업 처리부(300)를 별도의 백그라운드 처리부(600)가 제어하여 상기 사용자 요청부(400)는 사용자가 요청한 데이터 연산에 필요한 작업이 상기 작업 등록부(200)에 등록 완료되었다는 응답만을 받게 된다.
이러한 백그라운드 처리부(600)는 상기 사용자 요청부(400)로부터 상기 작업 처리부(300)의 제어를 요청받고, 상기 작업 처리부(300)의 응답을 상기 사용자 요청부(400)로 전달하는 역할을 수행할 수 있다.
따라서, 상기 작업 처리부(300)는 상기 작업 등록부(200)에 등록된 작업에 대한 처리 결과를 상기 백그라운드 처리부(600)로 통보하고, 상기 백그라운드 처리부(600)는 상기 작업 처리부(300)의 응답을 상기 사용자 요청부(400)로 전달할 수 있다.
이때, 상기 백그라운드 처리부(600)은 상기 작업 처리부(300)에 할당한 시간에 대한 정보를 상기 사용자 요청부(400)로 전달하여 상기 사용자 요청부(400)가 상기 할당된 시간동안 다른 작업을 수행할 수 있다.
이상과 같이 본 발명에 따른 플래시 메모리의 데이터 관리 장치 및 방법을 예시된 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않으며 그 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
상기한 바와 같은 본 발명의 플래시 메모리의 데이터 관리 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
첫째, 사용자가 요청한 데이터 연산에 대하여 소정 시간을 할당하고, 상기 할당된 시간동안 데이터 연산이 수행되도록 하여 응답 시간을 예측할 수 있다.
둘째, 실제 플래시 메모리에 대하여 처리해야할 데이터 저장할 수 있기 때문에 캐싱 역할을 수행할 수 있으므로 업데이트가 빈번히 발생하는 시스템의 성능을 향상시킬 수 있는 장점도 있다.

Claims (25)

  1. 사용자 프로그램을 통해 요청된 데이터 연산에 필요한 작업을 판단하는 작업 판단부와,
    상기 판단된 작업의 리스트가 등록되는 작업 등록부와,
    상기 리스트에서 소정의 작업을 선택하여 상기 데이터 연산을 수행하는 작업 처리부를 포함하는 플래시 메모리의 데이터 관리 장치.
  2. 제 1 항에 있어서,
    상기 작업 판단부는 필요시 상기 데이터 연산에 선행되어야 할 작업을 판단하는 플래시 메모리의 데이터 관리 장치.
  3. 제 2 항에 있어서,
    상기 작업 등록부는 상기 데이터 연산에 필요한 데이터를 저장하는 메모리부를 포함하는 플래시 메모리의 데이터 관리 장치.
  4. 제 3 항에 있어서,
    상기 작업 처리부는 상기 사용자 프로그램에 의해 할당된 소정 시간 동안 상기 작업 등록부에 등록된 작업을 처리하는 플래시 메모리의 데이터 관리 장치.
  5. 제 4 항에 있어서,
    상기 작업 처리부는 상기 할당된 시간 경과시 상기 작업의 처리 결과를 상기 사용자 프로그램으로 통보하는 플래시 메모리의 데이터 관리 장치.
  6. 제 3 항에 있어서,
    멀티 프로세스 지원 환경하에서 상기 작업 처리부가 상기 작업 등록부에 등록된 작업을 처리할 수 있도록 소정 시간을 할당하는 백그라운드 처리부를 더 포함하는 플래시 메모리의 데이터 관리 장치.
  7. 제 5 항에 있어서,
    상기 백그라운드 처리부는 상기 사용자 요청부로부터 상기 작업 처리부의 제어를 요청받고, 상기 작업 처리부로부터의 응답을 상기 사용자 요청부로 전달하는 플래시 메모리의 데이터 관리 장치.
  8. 제 7 항에 있어서,
    상기 작업 처리부는 상기 할당된 시간 경과시 상기 작업의 처리 결과를 상기 백그라운드 처리부로 통보하는 플래시 메모리의 데이터 관리 장치.
  9. 제 5 항 또는 제 8 항에 있어서,
    상기 작업 처리부는 상기 할당 시간 동안 상기 작업 리스트에 포함된 작업을 순차적 처리, 우선 순위별 처리 및 상기 할당 시간 동안 처리 가능한 작업을 선별적으로 처리하는 선별 처리 중 적어도 하나의 방식으로 처리하는 플래시 메모리의 데이터 관리 장치.
  10. 제 5 항 또는 제 8 항에 있어서,
    상기 작업 처리부는 상기 데이터 연산이 완료될때까지 다수의 할당된 시간 동안 상기 작업 등록부에 등록된 작업을 처리하는 플래시 메모리의 데이터 관리 장치.
  11. 제 5 항 또는 제 8 항에 있어서,
    상기 작업 처리부는 상기 사용자가 데이터 읽기를 요청한 경우, 상기 메모리부에 해당 데이터가 존재하는지의 여부를 판단하는 플래시 메모리의 데이터 관리 장치.
  12. 제 11 항에 있어서,
    상기 판단 결과 상기 메모리부에 해당 데이터가 존재하는 경우, 상기 메모리부로부터 데이터를 읽어 들이는 플래시 메모리의 데이터 관리 장치.
  13. 제 12 항에 있어서,
    상기 판단 결과 상기 메모리부에 해당 데이터가 존재하지 않는 경우, 실제 플래시 메모리로부터 데이터를 읽어 들이는 플래시 메모리의 데이터 관리 장치.
  14. 사용자가 소정의 사용자 프로그램을 통해 데이터 연산을 요청하는 제 1 단계와,
    상기 데이터 연산에 필요한 작업들을 판단하고, 판단된 작업의 리스트를 등록하는 제 2 단계와,
    상기 리스트에서 소정의 작업을 선택하여 상기 데이터 연산을 수행하는 제 3 단계를 포함하는 플래시 메모리의 데이터 관리 방법.
  15. 제 14 항에 있어서,
    상기 제 2 단계는 필요시 상기 데이터 연산에 선행되어야 할 작업들을 판단하는 플래시 메모리의 데이터 관리 방법.
  16. 제 15 항에 있어서,
    상기 제 2 단계는 상기 데이터 기록시 해당 데이터를 소정의 메모리에 저장하는 과정을 포함하는 플래시 메모리의 데이터 관리 방법.
  17. 제 16 항에 있어서,
    상기 제 3 단계는 상기 사용자 프로그램에 의해 할당된 소정 시간 동안 상기 작업들을 처리하는 플래시 메모리의 데이터 관리 방법.
  18. 제 17 항에 있어서,
    상기 제 3 단계는 상기 소정 시간 경과 후 상기 작업의 처리 결과를 상기 사용자 프로그램으로 통보하는 과정을 포함하는 플래시 메모리의 데이터 관리 방법.
  19. 제 16 항에 있어서,
    상기 제 3 단계는 멀티 프로세스 환경하에서 상기 사용자 프로그램에 의해 상기 작업들을 처리하고 그에 따른 응답을 상기 사용자 프로그램으로 전달하는 백그라운드 처리부가 할당하는 플래시 메모리의 데이터 관리 방법.
  20. 제 19 항에 있어서,
    상기 제 3 단계는 상기 소정 시간 경과 후 상기 작업의 처리 결과를 상기 백그라운드 처리부로 통보하는 과정을 포함하는 플래시 메모리의 데이터 관리 방법.
  21. 제 18 항 또는 제 20 항에 있어서,
    상기 제 3 단계는 상기 데이터 연산이 완료될 때까지 다수의 할당된 소정 시간동안 상기 작업들을 처리하는 플래시 메모리의 데이터 관리 방법.
  22. 제 21 항에 있어서,
    상기 작업 처리는 상기 할당 시간 동안 상기 작업 리스트에 포함된 작업을 순차적 처리, 우선 순위별 처리 및 상기 할당 시간 동안 처리 가능한 작업을 선별적으로 처리하는 선별 처리 중 적어도 하나의 방식으로 처리하는 플래시 메모리의 데이터 관리 방법.
  23. 제 22 항에 있어서,
    사용자가 상기 사용자 프로그램을 통해 데이터 읽기를 요청하는 제 4 단계와,
    상기 요청에 따라 이미 사용자가 요청한 데이터 연산에 필요한 작업에 상기 데이터 읽기를 요청한 섹터가 존재하는지의 여부를 판단하는 제 5 단계를 더 포함하는 플래시 메모리의 데이터 관리 방법.
  24. 제 23 항에 있어서,
    상기 제 5 단계는 상기 판단 결과 해당 섹터에 대한 작업이 존재하는 경우, 이미 사용자가 요청한 데이터 연산시 저장된 데이터를 읽어 들이는 과정을 포함하는 플래시 메모리의 데이터 관리 방법.
  25. 제 24 항에 있어서,
    상기 제 5 단계는 상기 판단 결과 해당 섹터에 대한 작업이 존재하지 않는 경우, 실제 플래시 메모리에서 데이터를 읽어 들이는 과정을 포함하는 플래시 메모리의 데이터 관리 방법.
KR1020040016567A 2004-03-11 2004-03-11 플래시 메모리의 데이터 관리 장치 및 방법 KR100541642B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020040016567A KR100541642B1 (ko) 2004-03-11 2004-03-11 플래시 메모리의 데이터 관리 장치 및 방법
JP2005046083A JP4242849B2 (ja) 2004-03-11 2005-02-22 フラッシュメモリのデータ管理装置及び方法
EP05251361A EP1574940A3 (en) 2004-03-11 2005-03-08 Data management appartus and method used for flash memory
US11/077,157 US7430632B2 (en) 2004-03-11 2005-03-11 Data management apparatus and method for determining a response time in flash memory devices
CNB2005100534758A CN100397363C (zh) 2004-03-11 2005-03-11 用于闪速存储器的数据管理设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040016567A KR100541642B1 (ko) 2004-03-11 2004-03-11 플래시 메모리의 데이터 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050091230A KR20050091230A (ko) 2005-09-15
KR100541642B1 true KR100541642B1 (ko) 2006-01-10

Family

ID=34825215

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040016567A KR100541642B1 (ko) 2004-03-11 2004-03-11 플래시 메모리의 데이터 관리 장치 및 방법

Country Status (5)

Country Link
US (1) US7430632B2 (ko)
EP (1) EP1574940A3 (ko)
JP (1) JP4242849B2 (ko)
KR (1) KR100541642B1 (ko)
CN (1) CN100397363C (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR100869675B1 (ko) * 2007-02-05 2008-11-21 지인정보기술 주식회사 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법
TWI470431B (zh) * 2013-06-14 2015-01-21 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
KR20210055875A (ko) 2019-11-08 2021-05-18 삼성전자주식회사 저장 장치와 저장 장치 시스템 그리고 그 동작 방법

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471604A (en) * 1992-10-30 1995-11-28 Intel Corporation Method for locating sector data in a memory disk by examining a plurality of headers near an initial pointer
US5509134A (en) * 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
US6370651B1 (en) * 1993-10-22 2002-04-09 Intel Corporation Synchronizing user commands to a microcontroller in a memory device
AU4145797A (en) * 1996-08-29 1998-03-19 Nematron Corporation Real time software system
US6078998A (en) * 1997-02-11 2000-06-20 Matsushita Electric Industrial Co., Ltd. Real time scheduling of prioritized disk requests
FR2772957B1 (fr) 1997-12-19 2000-02-04 Gemplus Card Int Procede de gestion d'applications evolutives dans un systeme terminal / carte a puce
US6042383A (en) * 1998-05-26 2000-03-28 Herron; Lois J. Portable electronic device for assisting persons with learning disabilities and attention deficit disorders
JP2000057039A (ja) 1998-08-03 2000-02-25 Canon Inc アクセス制御方法及び装置及びファイルシステム及び情報処理装置
US6374337B1 (en) * 1998-11-17 2002-04-16 Lexar Media, Inc. Data pipelining method and apparatus for memory control circuit
JP3440032B2 (ja) 1999-07-15 2003-08-25 パナソニック コミュニケーションズ株式会社 メモリ制御装置,ファクシミリ装置および画像形成装置
JP4527239B2 (ja) 2000-05-09 2010-08-18 大日本印刷株式会社 ラベル印刷システム
JP2002163175A (ja) * 2000-11-28 2002-06-07 Ntt Docomo Inc 受信装置及び中継装置
US6614709B2 (en) * 2001-03-09 2003-09-02 Intel Corporation Method and apparatus for processing commands in a queue coupled to a system or memory
US6779045B2 (en) * 2001-03-21 2004-08-17 Intel Corporation System and apparatus for increasing the number of operations per transmission for a media management system
GB2395032B (en) * 2001-08-07 2004-11-24 Solid State System Co Ltd Window-based flash memory storage system and management and access methods thereof
US6778436B2 (en) * 2001-10-10 2004-08-17 Fong Piau Apparatus and architecture for a compact flash memory controller
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
WO2003094036A1 (en) * 2002-04-30 2003-11-13 Koninklijke Philips Electronics N.V. Method for fetching data from a non-volatile memory in an integrated circuit and corresponding integrated circuit
WO2003093980A2 (en) * 2002-04-30 2003-11-13 Koninklijke Philips Electronics N.V. Apparatus and method for fetching data from memory
US20030206442A1 (en) * 2002-05-02 2003-11-06 Jerry Tang Flash memory bridiging device, method and application system
KR100493884B1 (ko) * 2003-01-09 2005-06-10 삼성전자주식회사 시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩
JP4073799B2 (ja) * 2003-02-07 2008-04-09 株式会社ルネサステクノロジ メモリシステム
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture

Also Published As

Publication number Publication date
JP4242849B2 (ja) 2009-03-25
KR20050091230A (ko) 2005-09-15
CN1667591A (zh) 2005-09-14
JP2005259127A (ja) 2005-09-22
US7430632B2 (en) 2008-09-30
EP1574940A3 (en) 2008-11-26
EP1574940A2 (en) 2005-09-14
CN100397363C (zh) 2008-06-25
US20050201160A1 (en) 2005-09-15

Similar Documents

Publication Publication Date Title
JP4988215B2 (ja) 複数のマッピング技法を採用した適応型フラッシュメモリ制御装置及びそれを含むフラッシュメモリシステム
KR100771519B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
KR100951107B1 (ko) 최적의 성능을 위한 파일 관리 방법
US7613870B2 (en) Efficient memory usage in systems including volatile and high-density memories
RU2451993C2 (ru) Продление срока службы флэш-памяти
US6848034B2 (en) Dense server environment that shares an IDE drive
US20100088459A1 (en) Improved Hybrid Drive
JPH0772989A (ja) 浮動セクタデータを記憶する固体メモリディスクをクリーンアップする方法
KR20090004157A (ko) 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
JP2009093571A (ja) 記憶制御装置、記憶制御装置のデータアーカイブ方法及びストレージシステム
JPH06202821A (ja) 固体メモリディスク並びにそれを制御する方法及び装置
JP2006018839A (ja) 漸進的マージ方法及びそれを利用したメモリシステム
TW201941060A (zh) 儲存裝置及電腦系統
US11269783B2 (en) Operating method for data storage device
WO2019000982A1 (zh) 一种存储系统、固态硬盘和数据存储方法
US7840749B2 (en) Data area managing method in information recording medium and information processor employing data area managing
US10620844B2 (en) System and method to read cache data on hybrid aggregates based on physical context of the data
US20050169058A1 (en) Data management apparatus and method used for flash memory
KR101026634B1 (ko) 하이브리드 플래시 메모리의 데이터 저장 방법
KR100541642B1 (ko) 플래시 메모리의 데이터 관리 장치 및 방법
JPH08137754A (ja) ディスクキャッシュ装置
JP2003256269A (ja) 不揮発性記憶装置の制御方法及びメモリ装置
US11003580B1 (en) Managing overlapping reads and writes in a data cache
JP4506292B2 (ja) キャッシュ制御方法およびデータ処理システム並びにその処理プログラム
JP2017228172A (ja) 情報処理システム

Legal Events

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

Payment date: 20121130

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee