KR101354152B1 - 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치 - Google Patents

비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치 Download PDF

Info

Publication number
KR101354152B1
KR101354152B1 KR1020060129661A KR20060129661A KR101354152B1 KR 101354152 B1 KR101354152 B1 KR 101354152B1 KR 1020060129661 A KR1020060129661 A KR 1020060129661A KR 20060129661 A KR20060129661 A KR 20060129661A KR 101354152 B1 KR101354152 B1 KR 101354152B1
Authority
KR
South Korea
Prior art keywords
data
metadata
input
preliminary step
file system
Prior art date
Application number
KR1020060129661A
Other languages
English (en)
Other versions
KR20080056584A (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 KR1020060129661A priority Critical patent/KR101354152B1/ko
Priority to TW096147641A priority patent/TWI373049B/zh
Priority to JP2007325231A priority patent/JP5475227B2/ja
Priority to CN2007100932862A priority patent/CN101241446B/zh
Priority to US11/958,815 priority patent/US20080147994A1/en
Publication of KR20080056584A publication Critical patent/KR20080056584A/ko
Application granted granted Critical
Publication of KR101354152B1 publication Critical patent/KR101354152B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템(virtual file system)에서, 예비 단계(preparation phase)를 설정하여 가상 파일 시스템의 작업 스케줄의 복잡도를 감소시키고 효율적인 인터리빙이 가능하게 하는 스케줄링 방법으로서, 데이터 관리를 위한 복수의 메타데이터 작업이 수행되는 구간인 예비 단계를 설정하는 단계와 설정된 예비 단계에서 복수의 메타데이터 작업의 수행이 종료되면 데이터의 입출력 작업을 수행하는 단계를 포함함으로써, 가상 파일 시스템의 스케줄링 구조를 단순화하여 코드 크기, 리소스 사용량을 감소시키고, 정확한 인터리빙 수행에 의해 대용량의 버퍼가 없어도 호스트와 저장장치 간의 원활한 데이터 전송이 가능하게 한다.

Description

비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 작업 스케줄링 방법 및 장치{Method for command scheduling of virtual file system embodied in non-volatile data storage and apparatus thereof}
도 1은 플래시 메모리를 이용한 N-channel/ 4-way 방식의 하드웨어 아키텍처를 나타내는 도면이다.
도 2는 상기 도 1의 하나의 채널 상에서, 4개의 플래시 메모리의 쓰기 동작을 나타내는 타이밍도이다.
도 3은 상기 도 2에서 하나의 페이지의 쓰기 동작을 보다 상세히 나타내는 도면이다.
도 4는 플래시 메모리를 이용한 비트 대역(bit width) 확장 방식의 하드웨어 아키텍처를 나타내는 도면이다.
도 5는 단일 플래시 메모리를 이용한 쓰기 요청 명령에 따르는 FTL(Flash Translation Layer)의 명령어 시퀀스의 타이밍도이다.
도 6은 본 발명의 일 실시예에 따른, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 작업 스케줄링 방법을 나타내는 플로우 차트이다.
도 7은 본 발명의 일 실시예에 따른, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 작업 스케줄링 방법을 나타내는 타이밍도이다.
도 8은 본 발명의 다른 실시예에 따른, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 확장된 작업 스케줄링 방법을 나타내는 플로우 차트이다.
도 9는 본 발명의 다른 실시예에 따른, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 확장된 작업 스케줄링 방법을 나타내는 타이밍도이다.
도 10은 본 발명의 또 다른 실시예에 따른, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템에 대한 작업 스케줄링 장치를 나타내는 기능 블록도이다.
본 발명은 작업 스케줄링 방법에 관한 것으로서, 더욱 상세하게는 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템(virtual file system)에서, 작업 스케줄의 예비 단계(preparation phase)를 설정하여 가상 파일 시스템의 복잡도를 감소시키고 효율적인 인터리빙 수행이 가능하게 하는 작업 스케줄링 방법 및 그 장치에 관한 것이다.
최근 모바일 기기를 포함한 멀티미디어 장치는 주로 MP3 음향, 동영상 등의 매우 큰 크기의 멀티미디어 데이터를 저장하고 이를 사용자에게 제공하고 있다. 이러한 기기에서 사용되는 저장장치는 대규모의 저장공간을 제공하므로 데이터를 고속으로 읽고 쓸 수 있는 기능 또한 제공되어야 한다. 
도 1은 플래시 메모리를 이용한 N-channel/ 4-way 방식의 하드웨어 아키텍처를 나타내는 도면이다.
현재 비휘발성 데이터 저장장치 중 플래시 메모리는 저전력, 소형화, 적은 발열, 높은 안정성 등의 이유로 다양한 모바일 기기의 저장장치로 사용되고 있으며, 사용자의 요구에 부합하여 하나의 메모리에 저장할 수 있는 공간의 크기 역시 빠르게 증가하고 있다.
그러나, 플래시 메모리는 일반적으로 느린 프로그래밍(write) 속도를 가지고 있으며, 이를 극복하고 고속 데이터 입출력을 하기 위하여 플래시 메모리 저장장치를 구성하는 다양한 하드웨어 아키텍처가 제안되고 있다.
도 1을 참조하면, 플래시 메모리 컨트롤러(110)와 하나의 채널로 연결된 4개의 플래시 메모리(120)의 구성을 볼 수 있다. 플래시 메모리 저장장치는 저장 용량 증가와 데이터 입출력 성능을 향상시키기 위하여 그림과 같이 다수의 플래시 메모리 칩을 사용한다.
플래시 메모리에 대한 읽기/쓰기는 i)메모리 셀로부터 데이터를 기록/판독하고, ii)플래시 메모리 컨트롤러로 데이터 입출력하는 두 단계로 이루어진다. 이러한 이유로 플래시 메모리 저장장치에 존재하는 컨트롤러는 단일 데이터 입출력 채널에 대하여 다수의 플래시 메모리 칩을 연결하여 인터리빙(interleaving) 방식으로 데이터를 입출력한다. 현재 일반적인 플래시 메모리 표준에 따르면 단일 채널은 최대 4~5개의 플래시 메모리 칩을 사용하는 경우 더 이상 성능 향상을 기대하기 어렵게 되므로 2의 지수승으로 주소 분배가 용이한 4-way 아키텍처가 주로 사용되고 있다.
도 2는 상기 도 1의 하나의 채널 상에서, 4개의 플래시 메모리의 쓰기 동작 을 나타내는 타이밍도이며, 도 3은 상기 도 2에서 하나의 페이지의 쓰기 동작을 보다 상세히 나타내는 도면이다.
도 3에서 볼 수 있듯이, 하나의 페이지의 쓰기 동작(210)에서 일반적으로 2KB의 페이지 단위를 적용시, 페이지 셋업 시간이 51.2usec(1Byte의 셋업 시간이 25nsec)이고, 프로그래밍 시간이 200usec이다. 상대적으로 느린 프로그래밍 시간을 보상하기 위하여 대용량의 데이터는 도 1와 같은 채널의 4개의 플래시 메모리(120)에 분산되어 저장된다. 이러한 종래의 기술은 플래시 메모리에서 프로그래밍이 진행되는 동안, 채널 내에서 유휴(idle) 상태에 있는 또 다른 플래시 메모리에서 셋업을 수행하여 컨트롤러의 대기 시간을 최소화하는 방법으로 도 2와 같이 인터리빙 방식의 고속 쓰기 동작을 수행하게 된다.
도 4는 플래시 메모리를 이용한 비트 대역(bit width) 확장 방식의 하드웨어 아키텍처를 나타내는 도면이다.
플래시 메모리 저장장치의 대용량화에 따라 5개 이상의 칩을 사용하는 경우도 발생할 수 있으며, 이때 사용할 수 있는 방법이 크게 비트 대역(bit width) 확장 방식과 다중 채널(multi-channel) 방식의 아키텍처로 구분할 수 있다. 상기 다중 채널 방식은 앞서 설명한 1-channel/x-way 의 확장으로 볼 수 있으며, 비트 대역 확장 방식은 도 4에 도시된 바와 같이, 2개 이상의 플래시 메모리 칩을 연결하여 동시에 데이터 전송하는 방법이다. 연결된 칩은 항상 같은 주소 영역에 대하여 동시에 읽기/쓰기를 수행하여야 한다.
한편, 플래시 메모리는 일반적으로 페이지(page) 단위로 읽기/쓰기가 이루어 지며, 갱신을 위해 다시 기록하기 위해서는 먼저 다수의 페이지로 구성된 블록(block) 단위로 지우기(erase) 동작을 수행해야한다. 이러한 특징은 일반적인 저장장치와 다른 특성으로, 기존 파일시스템(file system)과의 호환성을 가지기 위하여 FTL(Flash Translation Layer)이라는 특별한 소프트웨어(가상 파일 시스템)를 이용하여 플래시 메모리 저장장치를 관리하고 기존 파일시스템과의 호환성을 제공한다. 파일 시스템과의 호환성을 위한 가상 파일 시스템은 다른 비휘발성 데이터 저장장치의 경우에도 적용될 수 있으며, 따라서 이하 설명하는 내용은 비휘발성 데이터 저장장치에 대해 전반적으로 적용이 가능하다.
이러한 FTL은 전술한 복잡한 하드웨어 아키텍처로부터 일반적으로 주소 맵핑 테이블(address mapping table), 프리 블록 정보(free block infomation), 배드 블록 정보(bad block infomation) 등의 다양한 메타데이터를 이용하는데, 이들은 대부분 플래시 메모리 내에 저장되어 있다. 또한 FTL의 메타데이터는 플래시 메모리의 카피-백(copyback) 명령이 허용되는 범위인 디바이스(device) 또는 플레인(plain) 단위로 독립적으로 저장된다. 이것은 FTL의 중요한 작업 중 하나인 폐영역 수집(garbage collection)을 효율적으로 수행하기 위함이며, 다수의 칩을 사용하는 복잡한 아키텍처의 플래시 메모리 저장장치는 칩의 개수에 비례하여 독립적인 메타데이터를 가지게 된다.
도 5는 단일 플래시 메모리를 이용한 쓰기 요청 명령에 따르는 FTL(Flash Translation Layer)의 명령어 시퀀스의 타이밍도이다.
상기 설명한 하드웨어 아키텍처 구조에서 FTL은 파일시스템의 읽기/쓰기 요 청에 대하여 각각의 플래시 메모리에 다양한 명령(command)을 보내게 된다. 도 5에서 단일 플래시 메모리 칩을 사용하는 저장장치의 경우를 가정하면, 파일시스템의 데이터 기록 요청(write request, 510)에 대하여 FTL이 하드웨어로 보내는 명령들은 맵 테이블의 판독/갱신(map table read/update), 블록 소거(block erase), 블록 병합(block merge, 521) 등의 다양한 FTL 메타데이터에 대한 작업(matadata commands, 520 및 540)과 실제 요청한 사용자 데이터의 입출력을 위한 명령(data commands, 530 및 550)으로 혼재되어 있다.
상기 언급한 바와 같이, 고속 데이터 입출력을 위하여 다수의 칩을 사용하는 플래시 메모리 저장장치는 플래시 메모리 칩 디바이스(device) 또는 채널(channel) 단위로 다수의 독립적인 메타데이터가 존재하게 된다. 따라서, 이러한 구조에서 파일시스템의 데이터 입출력 요청에 의해 FTL은 각각의 메타데이터에 대하여 서로 다른 명령을 지시하게 된다. 즉, 각각의 독립적인 FTL 메타데이터마다 서로 다른 메타데이터 명령 세트(metadata commands set)을 가지며 각각의 수행시간 역시 서로 상이하게 된다.
따라서, 실제 사용자 데이터에 대한 명령의 이슈(issue) 시간이 서로 다르게 된다. 즉, 각각의 FTL 관리 단위마다 서로 다른 명령 스케줄(작업 스케줄)을 가지므로 FTL 관리 단위의 증가는 FTL의 복잡도를 증가하는 요인이 되며 사용자 데이터의 이슈 시간이 다름으로 인해 대용량의 버퍼가 필요하게 된다. 이러한 FTL의 복잡도 증가로 인해, FTL의 코드 크기(code size)가 커지며, 메모리 사용량(memory usage)이 증가하고, 또한 CPU의 처리 시간(processing time)이 증가하는 등, 리소 스 사용량의 증가로 이어진다. FTL의 처리량 증가는 각각의 명령 이슈에 대하여 지연시간이 발생할 가능성이 높아지고, 또한 사용자 데이터 입출력 명령이 특정 시점에 집중되어 호스트와 저장장치간의 대용량 데이터(burst data) 전송의 어려움이 발생할 수 있으며, 인터리빙(interleaving)으로 인한 성능 향상 효과를 저해하는 요인으로 작용할 수 있다. 이러한 문제점들은 결국 플래시 메모리 저장장치의 데이터 입출력 성능이 저하되는 결과로 나타난다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명에서는 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템에서 작업 스케줄의 예비 단계를 설정하여, 가상 파일 시스템의 복잡도를 감소시키고 효율적인 인터리빙 수행이 가능한 작업 스케줄링 방법 및 그 장치를 제공하는 데에 목적이 있다.
상기와 같은 기술적 과제를 해결하기 위하여 본 발명에 따른 스케줄링 방법은, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템(virtual file system)의 작업 스케줄링(command scheduling) 방법에 있어서, 데이터 관리를 위한 복수의 메타데이터 작업이 수행되는 예비 단계(preparation phase)를 설정하는 단계와 상기 설정된 예비 단계에서 상기 복수의 메타데이터 작업의 수행이 종료되면, 상기 데이터의 입출력 작업을 수행하는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법에 의해 달성된다.
또한 상기 설정된 예비 단계 내에서 상기 복수의 메타데이터 작업을 수행하는 단계를 더 포함하며, 상기 수행되는 복수의 메타데이터 작업은 상기 가상 파일 시스템이 관리하는 단위별로 수행되는 것이 바람직하다.
또한 상기 예비 단계를 설정하는 단계는, 상기 가상 파일 시스템이 관리하는 단위별로 상기 데이터 입출력 작업을 위한 준비 작업의 수행시간을 계산하는 단계와 상기 계산된 수행시간 중 가장 긴 수행시간에 따라서 상기 예비 단계를 설정하는 단계를 더 포함하는 것이 바람직하다.
상기 데이터 입출력 작업을 위한 준비 작업 및 복수의 메타데이터 작업은, 상기 데이터 단계에서 수행되는 데이터의 입출력 작업의 기록 또는 판독의 종류에 따른 상기 가상 파일 시스템의 준비 작업인 것이 바람직하며, 상기 가상 파일 시스템의 준비 작업은, 상기 메타데이터의 판독/갱신, 폐영역 수거(garbage collection), 맵핑 테이블 판독/갱신 또는 유닛 소거(unit erase) 중 적어도 하나 이상을 포함하는 것이 더욱 바람직하다.
또한 상기 데이터 단계를 설정하여 상기 데이터의 입출력 작업을 수행하는 단계는, 상기 설정된 예비 단계 이후 상기 데이터의 입출력 작업이 일괄적으로 수행하도록 하는 것이 바람직하며, 상기 일괄적으로 수행되는 데이터 입출력 작업은, 인터리빙(interleaving) 방식을 적용하여 상기 데이터가 입출력된 순서대로 수행되는 것이 더욱 바람직하다.
한편 상기 비휘발성 데이터 저장장치는 플래시 메모리이며, 상기 가상 파일 시스템은 플래시 변환 계층(Flash Translation Layer: FTL)이며, 상기 플래시 변환 계층이 관리하는 단위는 상기 플래시 메모리의 디바이스 단위 또는 복수의 상기 플래시 메모리를 사용하는 채널 단위인 것이 바람직하다.
상기의 다른 기술적 과제를 해결하기 위하여 본 발명에 의한 따른 확장된 작업 스케줄링 방법은, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 확장된 작업 스케줄링(extended command scheduling) 방법에 있어서, 데이터 관리를 위한 복수의 메타데이터 작업이 수행되는 예비 단계(preparation phase)를 설정하는 단계와 상기 설정된 예비 단계 내의 유휴 시간(idle time)에 다음 예비 단계의 메타데이터 작업을 수행하는 단계와 상기 설정된 예비 단계에서 상기 복수의 메타데이터 작업 및 상기 다음 예비 단계의 메타데이터 작업의 수행이 모두 종료되면, 상기 데이터의 입출력 작업을 수행하는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법에 의해 달성된다.
또한 상기 설정된 예비 단계 내에서 상기 복수의 메타데이터 작업을 수행하는 단계를 더 포함하며, 상기 수행되는 복수의 메타데이터 작업 및 상기 다음 예비 단계의 메타데이터 작업은 상기 가상 파일 시스템이 관리하는 단위별로 수행되는 것이 바람직하다.
또한 상기 예비 단계를 설정하는 단계는, 상기 가상 파일 시스템이 관리하는 단위별로 상기 데이터 입출력 작업을 위한 준비 작업의 수행시간을 계산하는 단계와 상기 계산된 수행시간 중 가장 긴 수행시간에 따라서 상기 예비 단계를 설정하는 단계를 더 포함하는 것이 바람직하다.
한편, 상기 설정된 예비 단계 내의 유휴 시간(idle time)은, 상기 설정된 예 비 단계의 수행시간에서, 상기 계산된 가상 파일 시스템이 관리하는 단위별 준비 작업의 수행시간을 감한 시간인 것이 바람직하며, 상기 설정된 예비 단계 내의 유휴 시간에 다음 예비 단계의 메타데이터 작업을 수행하는 단계는, 상기 가상 파일 시스템에서 관리하는 단위별로 상기 다음 예비 단계의 메타데이터 작업의 수행시간을 계산하여, 상기 다음 예비 단계의 메타데이터 작업을 상기 유휴 시간에 배분함으로써 수행하는 것이 바람직하다.
또한 데이터 입출력 작업을 위한 준비 작업, 상기 복수의 메타데이터 작업 및 상기 다음 예비 단계의 메타데이터 작업은, 상기 데이터 단계에서 수행되는 데이터의 입출력 작업의 기록 또는 판독의 종류에 따라 상기 메타데이터의 판독/갱신, 폐영역 수거, 맵핑 테이블 판독/갱신 또는 유닛 소거 중 적어도 하나 이상을 포함하는 것이 바람직하다.
상기 데이터 단계를 설정하여 상기 데이터의 입출력 작업을 수행하는 단계는, 상기 설정된 예비 단계 이후 상기 데이터의 입출력 작업이 일괄적으로 수행하도록 하는 것이 바람직하며, 상기 일괄적으로 수행되는 데이터 입출력 작업은, 인터리빙 방식을 적용하여 상기 데이터가 입출력된 순서대로 수행되는 것이 더욱 바람직하다.
한편, 상기 비휘발성 데이터 저장장치는 플래시 메모리이며, 상기 가상 파일 시스템은 플래시 변환 계층이며, 상기 플래시 변환 계층이 관리하는 단위는 상기 플래시 메모리의 디바이스 단위 또는 복수의 상기 플래시 메모리를 사용하는 채널 단위인 것이 바람직하다.
상기의 또 다른 기술적 과제를 해결하기 위하여 본 발명에 의한 따른 스케줄링 방법은, 플래시 메모리에 구비된 플래시 변환 계층(FTL)의 작업 스케줄링(command scheduling) 방법에 있어서, 상기 플래시 변환 계층의 관리 단위별로 데이터 입출력 작업을 위한 준비 작업의 수행시간을 계산하는 단계와 상기 계산된 수행시간 중 가장 긴 수행시간에 따라서 예비 단계(preparation phase)를 설정하는 단계와 상기 설정된 예비 단계에서, 각각의 상기 플래시 변환 계층의 관리 단위별로 상기 데이터의 관리를 위한 복수의 메타데이터 작업을 수행하는 단계와 상기 설정된 예비 단계 이후에 상기 데이터의 입출력 작업을 일괄적으로 수행하는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법에 의해서도 달성된다.
또한 상기 플래시 변환 계층이 관리하는 단위는 상기 플래시 메모리의 디바이스 단위 또는 복수의 상기 플래시 메모리를 사용하는 채널 단위인 것이 바람직하며, 상기 데이터 입출력 작업을 위한 준비 작업 및 메타데이터 작업은, 상기 메타데이터의 판독/갱신, 폐영역 수거, 맵핑 테이블 판독/갱신 또는 유닛 소거 중 적어도 하나 이상을 포함하는 것이 바람직하다.
또한 상기 데이터 단계를 설정하여 상기 데이터의 입출력 작업을 일괄적으로 수행하는 단계는, 인터리빙 방식을 적용하여 상기 데이터가 입출력된 순서대로 수행하는 것이 바람직하다.
한편, 상기 설정된 예비 단계의 수행시간에서, 상기 계산된 상기 플래시 변환 계층의 관리 단위별 준비 작업의 수행시간을 감하여 유휴 시간(idle time)을 계산하는 단계와 상기 계산된 상기 플래시 변환 계층의 관리 단위별 유휴 시간에 상 기 관리 단위별로 다음 예비 단계의 메타데이터 작업을 수행하는 단계를 더 포함하는 것이 바람직하며, 상기 계산된 상기 플래시 변환 계층의 관리 단위별 유휴 시간에 상기 관리 단위별로 다음 예비 단계의 메타데이터 작업을 수행하는 단계는, 상기 플래시 변화 계층에서 상기 관리 단위별로 상기 다음 예비 단계의 메타데이터 작업의 수행시간을 계산하여, 상기 다음 예비 단계의 메타데이터 작업을 상기 유휴 시간에 배분함으로써 수행하는 것이 바람직하다.
상기의 또 다른 기술적 과제를 해결하기 위하여 본 발명에 따른 스케줄러는, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템(virtual file system)에 대한 작업 스케줄링(command scheduling) 장치에 있어서, 상기 가상 파일 시스템이 관리하는 단위별로 상기 데이터 입출력 작업을 위한 준비 작업의 수행시간을 계산하는 수행시간 계산부와 상기 계산된 수행시간 중 가장 긴 수행시간에 따라서 상기 예비 단계(preparation phase)를 설정하여, 데이터 관리를 위한 복수의 메타데이터 작업을 수행하도록 하는 제1제어부와 상기 설정된 예비 단계 이후에 상기 데이터의 입출력 작업을 일괄적으로 수행하도록 하는 제2제어부를 포함하는 것을 특징으로 하는 스케줄러에 의해 달성된다.
상기 제1제어부는, 상기 설정된 예비 단계의 수행시간에서 상기 계산된 상기 가상 파일 시스템의 관리 단위별 준비 작업의 수행시간을 감하여 유휴 시간(idle time)을 계산하는 유휴 시간 계산부와 상기 계산된 상기 가상 파일 시스템의 관리 단위별 유휴 시간에 상기 관리 단위별로 상기 계산된 상기 가상 파일 시스템의 관리 단위별 유휴 시간에 상기 관리 단위별로 다음 예비 단계의 메타데이터 작업을 수행하도록 하는 추가 작업부를 더 포함하는 것이 바람직하다.
나아가, 상기의 과제를 이루기 위하여 본 발명에 의한 스케줄링 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체를 포함한다.
이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다. 이하에서 비록 플래시 메모리를 실시예로 하여 설명하고 있으나, 이를 비휘발성 데이터 저장장치에 전반적으로 적용 가능함은 앞서 설명한 바와 같다.
도 6은 본 발명의 일 실시예에 따른, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 작업 스케줄링 방법을 나타내는 플로우 차트이다.
도 6을 참조하면, 먼저 예비 단계(preparation phase)를 설정하기 위하여, 가상 파일 시스템(FTL)이 관리하는 단위별로 상기 데이터 입출력 작업을 위한 준비 작업의 수행시간을 계산한다(610). FTL은 메모리 칩 디바이스(device) 또는 다수의 디바이스(x-way)를 구비한 채널(channel) 단위로 다수의 독립적인 메타데이터를 관리하므로, 이들 관리 단위별로 상기 데이터 입출력 작업을 위한 준비 작업의 수행시간을 계산한다. 실제 사용자 데이터(user data)의 입출력 작업을 수행하기 위해서는, 사전에 상기 관리 단위별로 데이터의 입출력 작업의 종류(기록/판독 등)에 따라 예비 동작(준비 작업)이 필요한데, 예를 들어, 맵 테이블의 판독/갱신(map table read/update), 유닛(블록) 소거(block erase), 폐영역 수집(병합(merge), 교환(switch), 압축(compaction)) 등의 다양한 FTL 메타데이터에 대한 작업(metadata commands) 등이 수행된다. FTL은 이러한 준비 작업의 수행시간을 각 디바이스별 (또는 채널별)로 계산한다.
다음으로, 계산된 수행시간 중 가장 긴 수행시간에 따라서 상기 예비 단계를 설정한다(620). 즉, 다른 디바이스들을 포함하여 상기 계산된 준비 작업의 수행시간 중에서 최장 시간의 시점을 예비 단계의 시간으로 설정하는 것이다. 예비 단계의 시간 동안은 전술한 맵 테이블의 판독/갱신(map table read/update), 블록 소거(block erase), 블록 병합(block merge)등의 다양한 FTL 메타데이터에 대한 작업이 수행되고(630), 작업 스케줄(명령 스케줄) 관리상 사용자 데이터의 읽기/쓰기 작업 명령은 지시되지 않는다.
예비 단계의 메타데이터 작업의 수행이 모두 끝나면(640), 즉 예비 단계가 종료되면 FTL은 실제 사용자 데이터의 입출력 작업을 일괄적으로 지시하여 읽기/쓰기 작업을 수행한다(650). 실제 사용자 데이터의 입출력 작업이 수행되는 구간은 상기 예비 단계에 대응하여 데이터 단계(data phase)로 설정된다. 데이터 입출력 작업이 일괄적으로 수행되므로 인터리빙 방식을 통해 다수의 메모리 칩(device) 또는 채널에 분산 저장되는 사용자 데이터는 고속으로 처리될 수 있다. 이러한 식으로, 호스트의 파일 시스템의 요청(read/write request)은 1회 이상의 예비 단계와 데이터 단계가 반복적으로 수행되어 완료되게 된다.
도 7은 본 발명의 일 실시예에 따른, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 작업 스케줄링 방법을 나타내는 타이밍도이다.
도 7를 참조하면, 4개의 플래시 메모리 칩(device) 또는 4개의 채널 단위로 FTL의 메타데이터가 관리되는 경우를 가정하고 있으며, 각각의 예비 단계(710, 730)는 상황에 따라 다양한 작업(map table read/write, garbage collection, erase 등)을 수행하는 명령(do preparation, 711)으로 구성되어 있다. 예비 단계는 파일 시스템의 논리적 블록 단위(logical block unit) 또는 읽기/쓰기 요청 단위(read/write request unit)로 수행될 수 있다.
또한 4개의 FTL 관리 단위는 서로 다른 준비 작업을 수행하게 되며, 각각의 소요 시간도 달라지게 된다. 가장 긴 시간이 필요한 1번 디바이스의 준비 작업(713)이 완료되면, 즉 예비 단계가 종료되면, 데이터 단계(720, 740)가 시작되게 된다. 데이터 단계에서는 사용자 데이터를 호스트에서부터 입력된(또는 버퍼에 저장된) 순서대로 읽기/쓰기의 명령이 수행되고, 4개의 FTL 관리 단위는 정확히 인터리빙이 이루어지며 데이터를 읽고 쓸 수 있다.
이렇게 작업 스케줄을 예비 단계(710, 730)와 데이터 단계(720, 740)로 단순화하여 나눔으로써, 정확히 이론적인 인터리빙의 효과적인 성능을 발휘할 수 있으며, 사용자 데이터의 입출력 순서와 작업 스케줄 상의 사용자 데이터 명령 순서가 일치하게 되어 호스트와 FTL 간의 대용량 전송이 용이하게 된다.
도 8은 본 발명의 다른 실시예에 따른, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 확장된 작업 스케줄링 방법을 나타내는 플로우 차트이다.
도 8을 참조하여 동작과정을 살펴보면, 도 6과 같이 먼저 가상 파일 시스템이 관리하는 단위별로 상기 데이터 입출력 작업을 위한 준비 작업의 수행시간을 계산한다(810). 상기 준비 작업에 이용되는 메타데이터는 서로 독립적이므로 각각의 수행시간 역시 모두 상이하게 계산된다. 따라서, 이들 계산된 수행시간 중 가장 긴 수행시간에 맞춰 예비 단계를 설정하고(820), 설정된 예비 단계의 시간 동안 다양한 메타데이터 작업을 수행한다(830).
이때, 상기 관리 단위(예를 들어, 디바이스 단위)별로 계산된 준비 작업의 수행시간 중에서 최장 수행시간으로 계산된 디바이스, 즉 예비 단계의 시간 동안 계속 준비 작업을 수행하는 디바이스를 제외한 나머지 디바이스들은 각각의 메타데이터에 대한 작업(준비 작업)이 종료된 이후에 유휴 시간(idle time)을 확보하게 된다. 이러한 유휴 시간은 예비 단계의 수행시간에서, 각각의 디바이스별 준비 작업의 수행시간을 감하여 구할 수 있다. FTL은 이렇게 확보된 유휴 시간을 단순히 대기 시간(waiting time)으로 방치하지 않고, 단계의 특성에 맞는 다른 작업을 수행할 수 있는 기회로 삼을 수 있다. 따라서, 확장된 작업 스케줄링 방법에서는 이러한 유휴시간에 다음 예비 단계에서 필요한 준비 작업을 미리 수행한다.
예비 단계에서 필요한 준비 작업, 즉 메타데이터 작업은 전형적으로 맵 테이블 판독이나 프리 블록을 확보하기 위한 폐영역 수집 작업, 데이터 기록을 위한 전처리 작업으로서 블록 소거 작업 등이므로, 이러한 준비 작업의 수행시간을 미리 계산해서 일부를 확보된 상기 유휴 시간에 맞게 배분하여 수행할 수 있는 것이다. 이런 과정을 통해, 각 예비 단계에서 유휴 시간을 절약할 수 있으므로 단일 작업 요청(read/write request)에 대한 처리 시간이 감소한다. 나아가, 다수의 요청이 연속적으로 수신되는 대용량 고속 데이터 전송에서는 이와 같은 매커니즘에 의해 전체적인 입출력 처리 성능이 상당히 향상될 수 있다.
상기 살펴본 바와 같이, 예비 단계 내의 유휴 시간의 존재 여부를 판단하 여(840), 전술한 다음 예비 단계의 메타데이터 작업을 수행하고(850), 이들 메타데이터 작업들이 모두 종료하면(860), 즉 예비 단계가 끝나면, 실제 사용자 데이터의 입출력 작업을 수행한다(870). 이때 데이터의 입출력 작업은 상기 도 6에서 살펴본 바와 같이, 모두 일괄적으로 수행되므로(데이터 단계, data phase) 정확한 인터리빙 방식을 통하여, 분산 저장되는 데이터를 고속으로 처리할 수 있다. 
도 9는 본 발명의 다른 실시예에 따른, 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 확장된 작업 스케줄링 방법을 나타내는 타이밍도이다.
앞서 살펴본 도 7에서 각각의 FTL 관리 단위마다 준비 작업의 시간이 서로 다른 이유로 각각의 유휴 시간(712)이 발생하였다. 도 9에서는 이러한 유휴 시간(712) 동안에, 다음 예비 단계에서 수행될 작업을 미리 예측하여 그중 일부 작업을 수행하는 단계(extra job)를 추가하여, 유휴 시간을 최소화하고 메모리 저장장치의 읽기/쓰기 성능을 높이는 과정을 보이고 있다. 유휴 시간에 추가된 작업(extra job)에는 일반적으로 주어진 시간에 따라 블록 소거(erase), 현재 작업의 주소와 인접한 주소에 대한 맵 테이블 판독(map table read), 프리 블록을 수집하기 위한(garbage collection) 등을 예로 들 수 있다. 즉, 유휴 시간에 추가된 작업(extra job)으로 인해 전체 예비 단계의 평균 소요 시간이 단축되어, 결국 메모리 저장장치의 읽기/쓰기 처리 시간이 감소된다. 나아가, 설계자는 추가되는 작업에 대한 다양한 정책(extra job policy)을 수립하여 플래시 메모리 저장장치의 사용 목적에 따라 더욱 높은 데이터 입출력 성능을 이끌어낼 수도 있다.
도 10은 본 발명의 또 다른 실시예에 따른, 비휘발성 데이터 저장장치에 구 비된 가상 파일 시스템에 대한 작업 스케줄링 장치를 나타내는 기능 블록도이다.
각 블록별 동작 특성을 살펴보면, 수행 시간 계산부(1110)는 가상 파일 시스템(FTL)이 관리하는 단위별로 데이터 입출력 작업을 위한 준비 작업의 수행시간을 계산한다.
제1제어부(1120)는 수행 시간 계산부(1110)에서 계산된 수행시간 중 가장 긴 수행시간에 따라서 예비 단계(preparation phase)를 설정하여, 데이터 관리를 위한 복수의 메타데이터 작업이 수행되도록 한다. 제1제어부(1120)는 설정된 예비 단계 시간에서, 계산된 상기 관리 단위별 준비 작업의 수행시간을 감하여 유휴 시간(idle time)을 계산하는 유휴 시간 계산부(1121)와 계산된 유휴 시간에 관리 단위별로 다음 예비 단계의 메타데이터 작업이 수행되도록 하는 추가 작업부(1122)를 더 포함할 수 있다.
제1제어부(1120)에 의한 메타데이터 작업이 모두 종료하면, 제2제어부(1130)는 설정된 예비 단계 이후에 사용자 데이터의 입출력 작업이 일괄적으로 수행되도록 한다.
본 발명에 따른 스케줄링 방법은, 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, 자기 테이프, 플로피디스크와 같은 마그네틱 저장매체와 CD-ROM, 광 데이터 저장장치와 같은 광학적 판독매체 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통 한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
전술한 바와 같이 메모리 저장장치의 대용량화, 고속 입출력 처리를 실현함에 있어서 다수의 플래시 메모리를 사용하는 경우에, 본 발명에 의한 가상 파일 시스템의 작업 스케줄링 방법에 의하면, 가상 파일 시스템(FTL)의 구조를 단순화하여 코드 크기, 리소스 사용량을 감소할 수 있다. 또한 데이터 단계에서, 호스트로부터 입력된 데이터를 순서대로 기록할 수 있으므로 정확한 인터리빙의 효과도 기대할 수 있으며, 대용량의 버퍼를 사용하지 않더라도 호스트와 저장장치 간의 원활한 대용량 데이터 전송이 가능하게 된다.
또한 확장된 작업 스케줄링 방법에 의하면, 예비 단계내 유휴 시간에 추가된 작업(extra job)에 의해 다음 예비 단계에서 필요한 작업이 미리 수행될 수 있으므 로, 전체적으로 예비 단계의 평균 소요시간이 감소하는 효과가 나타나고, 결국 저장장치의 데이터 입출력 성능이 향상된다.

Claims (26)

  1. 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템(virtual file system)의 작업 스케줄링(command scheduling) 방법에 있어서,
    데이터 관리를 위한 복수의 메타데이터 작업이 수행되는 구간인 예비 단계(preparation phase)를 설정하는 단계와;
    상기 설정된 예비 단계에서 상기 복수의 메타데이터 작업의 수행이 종료되면, 상기 데이터의 입출력 작업을 수행하는 단계를 포함하고,
    상기 예비 단계를 설정하는 단계는,
    상기 가상 파일 시스템이 관리하는 단위별로 상기 데이터의 입출력 작업을 위한 준비 작업의 수행시간을 계산하는 단계와;
    상기 계산된 수행시간 중 가장 긴 수행시간에 따라서 상기 예비 단계를 설정하는 단계를 더 포함하는 것을 특징으로 하는 스케줄링 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 설정된 예비 단계 내에서 상기 복수의 메타데이터 작업을 수행하는 단계를 더 포함하며,
    상기 수행되는 복수의 메타데이터 작업은 상기 가상 파일 시스템이 관리하는 단위별로 수행되는 것을 특징으로 하는 스케줄링 방법.
  4. 제3항에 있어서,
    상기 데이터의 입출력 작업을 위한 준비 작업 및 복수의 메타데이터 작업은,
    상기 수행되는 데이터의 입출력 작업의 종류에 따른 상기 가상 파일 시스템의 준비 작업인 것을 특징으로 하는 스케줄링 방법.
  5. 제4항에 있어서,
    상기 가상 파일 시스템의 준비 작업은,
    상기 메타데이터의 판독, 상기 메타데이터의 갱신, 폐영역 수거(garbage collection), 맵핑 테이블의 판독, 상기 맵핑 테이블의 갱신 및 유닛 소거(unit erase) 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 스케줄링 방법.
  6. 제1항에 있어서,
    상기 데이터의 입출력 작업을 수행하는 단계는,
    상기 설정된 예비 단계 이후 상기 데이터의 입출력 작업을 일괄적으로 수행하도록 하는 것을 특징으로 하는 스케줄링 방법.
  7. 제6항에 있어서,
    상기 일괄적으로 수행되는 데이터의 입출력 작업은,
    인터리빙(interleaving) 방식을 통하여 상기 데이터가 입출력된 순서대로 수행되는 것을 특징으로 하는 스케줄링 방법.
  8. 제7항에 있어서,
    상기 비휘발성 데이터 저장장치는 플래시 메모리이며, 상기 가상 파일 시스템은 플래시 변환 계층(Flash Translation Layer: FTL)이며, 상기 플래시 변환 계층이 관리하는 단위는 상기 플래시 메모리의 디바이스 단위 또는 복수의 상기 플래시 메모리를 사용하는 채널 단위인 것을 특징으로 하는 스케줄링 방법.
  9. 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의 확장된 작업 스케줄링(extended command scheduling) 방법에 있어서,
    데이터 관리를 위한 복수의 메타데이터 작업이 수행되는 구간인 예비 단계(preparation phase)를 설정하는 단계와;
    상기 설정된 예비 단계 내의 유휴 시간(idle time)에 다음 예비 단계의 메타데이터 작업을 수행하는 단계와;
    상기 설정된 예비 단계에서 상기 복수의 메타데이터 작업 및 상기 다음 예비 단계의 메타데이터 작업의 수행이 모두 종료되면, 상기 데이터의 입출력 작업을 수행하는 단계를 포함하고,
    상기 예비 단계를 설정하는 단계는,
    상기 가상 파일 시스템이 관리하는 단위별로 상기 데이터의 입출력 작업을 위한 준비 작업의 수행시간을 계산하는 단계와;
    상기 계산된 수행시간 중 가장 긴 수행시간에 따라서 상기 예비 단계를 설정하는 단계를 더 포함하는 것을 특징으로 하는 스케줄링 방법.
  10. 삭제
  11. 제9항에 있어서,
    상기 설정된 예비 단계 내에서 상기 복수의 메타데이터 작업을 수행하는 단계를 더 포함하며,
    상기 수행되는 복수의 메타데이터 작업 및 상기 다음 예비 단계의 메타데이터 작업은 상기 가상 파일 시스템이 관리하는 단위별로 수행되는 것을 특징으로 하는 스케줄링 방법.
  12. 제11항에 있어서,
    상기 설정된 예비 단계 내의 유휴 시간(idle time)은,
    상기 설정된 예비 단계의 수행시간에서, 상기 계산된 준비 작업의 수행시간을 감한 시간인 것을 특징으로 하는 스케줄링 방법.
  13. 제12항에 있어서,
    상기 설정된 예비 단계 내의 유휴 시간에 다음 예비 단계의 메타데이터 작업을 수행하는 단계는,
    상기 가상 파일 시스템에서 관리하는 단위별로 상기 다음 예비 단계의 메타데이터 작업의 수행시간을 계산하여, 상기 다음 예비 단계의 메타데이터 작업을 상기 유휴 시간에 배분함으로써 수행하는 것을 특징으로 하는 스케줄링 방법.
  14. 제13항에 있어서,
    상기 데이터의 입출력 작업을 위한 준비 작업, 복수의 메타데이터 작업 및 상기 다음 예비 단계의 메타데이터 작업은,
    상기 수행되는 데이터의 입출력 작업의 종류에 따라 상기 메타데이터의 판독, 상기 메타데이터의 갱신, 폐영역 수거, 맵핑 테이블의 판독, 상기 맵핑 테이블의 갱신 및 유닛 소거 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 스케줄링 방법.
  15. 제9항에 있어서,
    상기 데이터의 입출력 작업을 수행하는 단계는,
    상기 설정된 예비 단계 이후 상기 데이터의 입출력 작업을 일괄적으로 수행하도록 하는 것을 특징으로 하는 스케줄링 방법.
  16. 제15항에 있어서,
    상기 일괄적으로 수행되는 데이터 입출력 작업은,
    인터리빙 방식을 통하여 상기 데이터가 입출력된 순서대로 수행되는 것을 특징으로 하는 스케줄링 방법.
  17. 제16항에 있어서,
    상기 비휘발성 데이터 저장장치는 플래시 메모리이며, 상기 가상 파일 시스템은 플래시 변환 계층이며, 상기 플래시 변환 계층이 관리하는 단위는 상기 플래시 메모리의 디바이스 단위 또는 복수의 상기 플래시 메모리를 사용하는 채널 단위인 것을 특징으로 하는 스케줄링 방법.
  18. 플래시 메모리에 구비된 플래시 변환 계층(FTL)의 작업 스케줄링(command scheduling) 방법에 있어서,
    상기 플래시 변환 계층의 관리 단위별로 데이터의 입출력 작업을 위한 준비 작업의 수행시간을 계산하는 단계와;
    상기 계산된 수행시간 중 가장 긴 수행시간에 따라서 예비 단계(preparation phase)를 설정하는 단계와;
    상기 설정된 예비 단계에서, 각각의 상기 플래시 변환 계층의 관리 단위별로 상기 데이터의 관리를 위한 복수의 메타데이터 작업을 수행하는 단계와;
    상기 설정된 예비 단계 이후에 상기 데이터의 입출력 작업을 일괄적으로 수행하는 단계를 포함하는 것을 특징으로 하는 스케줄링 방법.
  19. 제18항에 있어서,
    상기 플래시 변환 계층의 관리 단위는,
    상기 플래시 메모리의 디바이스 단위 또는 복수의 상기 플래시 메모리를 사용하는 채널 단위인 것을 특징으로 하는 스케줄링 방법.
  20. 제19항에 있어서,
    상기 데이터의 입출력 작업을 위한 준비 작업 및 메타데이터 작업은,
    상기 메타데이터의 판독, 상기 메타데이터의 갱신, 폐영역 수거, 맵핑 테이블의 판독, 상기 맵핑 테이블의 갱신 및 유닛 소거 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 스케줄링 방법.
  21. 제18항에 있어서,
    상기 설정된 예비 단계의 수행시간에서, 상기 계산된 상기 플래시 변환 계층의 관리 단위별 준비 작업의 수행시간을 감하여 유휴 시간(idle time)을 계산하는 단계와;
    상기 계산된 상기 플래시 변환 계층의 관리 단위별 유휴 시간에 상기 관리 단위별로 다음 예비 단계의 메타데이터 작업을 수행하는 단계를 더 포함하는 것을 특징으로 하는 스케줄링 방법.
  22. 제21항에 있어서,
    상기 계산된 상기 플래시 변환 계층의 관리 단위별 유휴 시간에 상기 관리 단위별로 다음 예비 단계의 메타데이터 작업을 수행하는 단계는,
    상기 플래시 변화 계층에서 상기 관리 단위별로 상기 다음 예비 단계의 메타데이터 작업의 수행시간을 계산하여, 상기 다음 예비 단계의 메타데이터 작업을 상기 유휴 시간에 배분함으로써 수행하는 것을 특징으로 하는 스케줄링 방법.
  23. 제18항에 있어서,
    상기 데이터의 입출력 작업을 일괄적으로 수행하는 단계는,
    인터리빙 방식을 통하여 상기 데이터가 입출력된 순서대로 수행하는 것을 특징으로 하는 스케줄링 방법.
  24. 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템(virtual file system)에 대한 작업 스케줄러(command scheduler)에 있어서,
    상기 가상 파일 시스템이 관리하는 단위별로 상기 데이터의 입출력 작업을 위한 준비 작업의 수행시간을 계산하는 수행시간 계산부와;
    상기 계산된 수행시간 중 가장 긴 수행시간에 따라서 예비 단계(preparation phase)를 설정하여, 상기 데이터의 관리를 위한 복수의 메타데이터 작업이 수행되도록 하는 제1제어부와;
    상기 설정된 예비 단계 이후에 상기 데이터의 입출력 작업이 일괄적으로 수행되도록 하는 제2제어부를 포함하는 것을 특징으로 하는 스케줄러.
  25. 제24항에 있어서,
    상기 제1제어부는,
    상기 설정된 예비 단계의 수행시간에서 상기 계산된 상기 가상 파일 시스템의 관리 단위별 준비 작업의 수행시간을 감하여 유휴 시간(idle time)을 계산하는 유휴 시간 계산부와;
    상기 계산된 상기 가상 파일 시스템의 관리 단위별 유휴 시간에 상기 관리 단위별로 다음 예비 단계의 메타데이터 작업이 수행되도록 하는 추가 작업부를 더 포함하는 것을 특징으로 하는 스케줄러.
  26. 제1항, 제3항 내지 제9항, 제11항 내지 제23항 중 어느 한 항에 기재된 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체.
KR1020060129661A 2006-12-18 2006-12-18 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치 KR101354152B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020060129661A KR101354152B1 (ko) 2006-12-18 2006-12-18 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
TW096147641A TWI373049B (en) 2006-12-18 2007-12-13 Command scheduling method and apparatus of virtual file system embodied in nonvolatile data storage device
JP2007325231A JP5475227B2 (ja) 2006-12-18 2007-12-17 不揮発性データ保存装置に備わった仮想ファイルシステムの作業スケジューリング方法及び装置
CN2007100932862A CN101241446B (zh) 2006-12-18 2007-12-18 非易失数据存储装置中虚拟文件系统命令调度方法和设备
US11/958,815 US20080147994A1 (en) 2006-12-18 2007-12-18 Command scheduling method and apparatus of virtual file system embodied in nonvolatile data storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060129661A KR101354152B1 (ko) 2006-12-18 2006-12-18 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20080056584A KR20080056584A (ko) 2008-06-23
KR101354152B1 true KR101354152B1 (ko) 2014-01-27

Family

ID=39529009

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060129661A KR101354152B1 (ko) 2006-12-18 2006-12-18 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치

Country Status (5)

Country Link
US (1) US20080147994A1 (ko)
JP (1) JP5475227B2 (ko)
KR (1) KR101354152B1 (ko)
CN (1) CN101241446B (ko)
TW (1) TWI373049B (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060004096A1 (en) * 2004-05-28 2006-01-05 Joseph Larner Method of Treating Endothelial Dysfunction, Oxidative Stress and Related Diseases
JP5029513B2 (ja) * 2008-06-30 2012-09-19 ソニー株式会社 情報処理装置、情報処理装置の制御方法、およびプログラム
US8370603B2 (en) * 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory
KR101571693B1 (ko) 2009-04-15 2015-11-26 삼성전자주식회사 동작 수행 중 다른 요청을 우선 처리할 수 있는 비휘발성 메모리 컨트롤러, 이를 포함하는 시스템 및 그 관리 방법
US8438453B2 (en) 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US8495332B2 (en) * 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
US8838877B2 (en) * 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US8310880B2 (en) * 2010-03-05 2012-11-13 248 Solid State, Inc. Virtual channel support in a nonvolatile memory controller
KR101993704B1 (ko) 2012-08-24 2019-06-27 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법
US20150199282A1 (en) * 2014-01-16 2015-07-16 Storart Technology Co., Ltd. Scramble random seed prediction method with storage device built-in data copy back procedure
US9652415B2 (en) 2014-07-09 2017-05-16 Sandisk Technologies Llc Atomic non-volatile memory data transfer
US9904621B2 (en) 2014-07-15 2018-02-27 Sandisk Technologies Llc Methods and systems for flash buffer sizing
US9645744B2 (en) 2014-07-22 2017-05-09 Sandisk Technologies Llc Suspending and resuming non-volatile memory operations
US9753649B2 (en) 2014-10-27 2017-09-05 Sandisk Technologies Llc Tracking intermix of writes and un-map commands across power cycles
US9952978B2 (en) 2014-10-27 2018-04-24 Sandisk Technologies, Llc Method for improving mixed random performance in low queue depth workloads
US9824007B2 (en) 2014-11-21 2017-11-21 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9817752B2 (en) 2014-11-21 2017-11-14 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9710170B2 (en) * 2015-03-05 2017-07-18 Western Digital Technologies, Inc. Processing data storage commands for enclosure services
US9772796B2 (en) 2015-04-09 2017-09-26 Sandisk Technologies Llc Multi-package segmented data transfer protocol for sending sub-request to multiple memory portions of solid-state drive using a single relative memory address
US10372529B2 (en) 2015-04-20 2019-08-06 Sandisk Technologies Llc Iterative soft information correction and decoding
US9778878B2 (en) 2015-04-22 2017-10-03 Sandisk Technologies Llc Method and system for limiting write command execution
US9870149B2 (en) * 2015-07-08 2018-01-16 Sandisk Technologies Llc Scheduling operations in non-volatile memory devices using preference values
US9715939B2 (en) 2015-08-10 2017-07-25 Sandisk Technologies Llc Low read data storage management
KR20170044780A (ko) * 2015-10-15 2017-04-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10228990B2 (en) 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
KR20170059049A (ko) * 2015-11-19 2017-05-30 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10126970B2 (en) 2015-12-11 2018-11-13 Sandisk Technologies Llc Paired metablocks in non-volatile storage device
US9837146B2 (en) 2016-01-08 2017-12-05 Sandisk Technologies Llc Memory system temperature management
US10235198B2 (en) * 2016-02-24 2019-03-19 Samsung Electronics Co., Ltd. VM-aware FTL design for SR-IOV NVME SSD
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
KR102611292B1 (ko) * 2016-06-22 2023-12-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10481830B2 (en) 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
CN109445691B (zh) * 2018-10-16 2022-03-29 深圳忆联信息系统有限公司 一种提高ftl算法开发和验证效率的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302176A (ja) * 1994-05-09 1995-11-14 Toshiba Corp 半導体ディスク装置
KR100526190B1 (ko) 2004-02-06 2005-11-03 삼성전자주식회사 플래시 메모리의 재사상 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
US5663908A (en) * 1995-07-06 1997-09-02 Micron Quantum Devices, Inc. Data input/output circuit for performing high speed memory data read operation
US5761732A (en) * 1996-06-28 1998-06-02 Intel Corporation Interleaving for memory cards
JP3763992B2 (ja) * 1999-03-30 2006-04-05 富士通株式会社 データ処理装置及び記録媒体
US6591287B1 (en) * 1999-09-08 2003-07-08 Lucent Technologies Inc. Method to increase the efficiency of job sequencing from sequential storage
US7302685B2 (en) * 2000-06-02 2007-11-27 Honeywell International Inc. Methods and apparatus for sharing slack in a time-partitioned system
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US7050310B2 (en) * 2004-02-10 2006-05-23 Niko Semiconductor Co., Ltd. Synchronous rectification circuit with dead time regulation
KR100568115B1 (ko) * 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
KR100626393B1 (ko) * 2005-04-07 2006-09-20 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 멀티-페이지 카피백 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302176A (ja) * 1994-05-09 1995-11-14 Toshiba Corp 半導体ディスク装置
KR100526190B1 (ko) 2004-02-06 2005-11-03 삼성전자주식회사 플래시 메모리의 재사상 방법

Also Published As

Publication number Publication date
JP2008152788A (ja) 2008-07-03
US20080147994A1 (en) 2008-06-19
KR20080056584A (ko) 2008-06-23
JP5475227B2 (ja) 2014-04-16
TW200834593A (en) 2008-08-16
TWI373049B (en) 2012-09-21
CN101241446B (zh) 2013-10-16
CN101241446A (zh) 2008-08-13

Similar Documents

Publication Publication Date Title
KR101354152B1 (ko) 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
US8332573B2 (en) Method and apparatus for performing address mapping in virtual file system of storage unit having a plurality of non-volatile data storage media
US9183136B2 (en) Storage control apparatus and storage control method
US8208322B2 (en) Non-volatile memory control
US7475185B2 (en) Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device
US7350017B2 (en) Magnetic disk unit, file management system, and file management method
US8214583B2 (en) Direct file data programming and deletion in flash memories
KR100441587B1 (ko) 블록 얼라인먼트 기능을 갖는 반도체 기억 장치
US7877539B2 (en) Direct data file storage in flash memories
JP2018049522A (ja) メモリシステム及び制御方法
US20060184719A1 (en) Direct data file storage implementation techniques in flash memories
US20100011154A1 (en) Data accessing method for flash memory and storage system and controller using the same
US20100332732A1 (en) Memory systems and mapping methods thereof
WO2011047563A1 (zh) 非易失性存储器数据的读写控制方法及系统、存储设备
TWI534616B (zh) 控制器
JPWO2005029311A1 (ja) 半導体メモリカード、半導体メモリ制御装置及び半導体メモリ制御方法
US20170228191A1 (en) Systems and methods for suppressing latency in non-volatile solid state devices
TW201917581A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
JP2012113343A (ja) 記憶装置
WO2017000821A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
WO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP6254986B2 (ja) 情報処理装置、アクセスコントローラ、および情報処理方法
JP6243884B2 (ja) 情報処理装置、プロセッサ、および情報処理方法
KR102088945B1 (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: 20161228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 6