KR101376937B1 - 플래시 컴포넌트 질의 시스템, 플래시 컴포넌트 질의 방법 및 컴퓨터 판독가능 저장 매체 - Google Patents

플래시 컴포넌트 질의 시스템, 플래시 컴포넌트 질의 방법 및 컴퓨터 판독가능 저장 매체 Download PDF

Info

Publication number
KR101376937B1
KR101376937B1 KR1020087023251A KR20087023251A KR101376937B1 KR 101376937 B1 KR101376937 B1 KR 101376937B1 KR 1020087023251 A KR1020087023251 A KR 1020087023251A KR 20087023251 A KR20087023251 A KR 20087023251A KR 101376937 B1 KR101376937 B1 KR 101376937B1
Authority
KR
South Korea
Prior art keywords
flash
component
data
driver
query
Prior art date
Application number
KR1020087023251A
Other languages
English (en)
Other versions
KR20080104337A (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 마이크로소프트 코포레이션
Publication of KR20080104337A publication Critical patent/KR20080104337A/ko
Application granted granted Critical
Publication of KR101376937B1 publication Critical patent/KR101376937B1/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0643Management of files
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

플래시 드라이버는 파일 시스템 및 기타 애플리케이션에 의해, 기본 플래시 컴포넌트를 기술하는, 영역의 외형(geometry) 등의, 보다 상세한 속성 및 특성(properties)을 결정하는 데에 이용될 수 있다. 이는 파일 시스템이, 예를 들면, 각 플래시 영역 및 그 특성을 인식할 수 있게 한다. 그 다음 파일 시스템은 플래시 컴포넌트를 보다 효율적으로 이용하도록 최적화될 수 있다. 이들 최적화는 컴포넌트의 수명을 늘리고 판독/기록 성능을 향상시킬 수 있다.
플래시 드라이버, 파일 시스템, 애플리케이션

Description

플래시 컴포넌트 질의 시스템, 플래시 컴포넌트 질의 방법 및 컴퓨터 판독가능 저장 매체{DESCRIBING AND QUERYING DISCRETE REGIONS OF FLASH STORAGE}
NAND 및 NOR 플래시(flash) 저장 컴포넌트와 같은 플래시 저장 컴포넌트는, 각각이 서로 다른 특징을 가지는 분리된(discrete) 물리적 영역들로 종종 구성되거나, 또는 선택적으로 구성될 수 있다. 이 특징은 예를 들면, 상이한 블록, 페이지, 및 섹터 크기, 고유한 판독/기록/소거 성능 속성(attribute), 및 판독-전용, 판독/기록, 또는 1회-기록에 대한 기능(ability)을 포함한다.
통상의 소프트웨어 파일 시스템은 플래시 컴포넌트들을 서로 다른 영역의 특징을 고려하지 않고 단일의, 섹터 또는 클러스터의 이질적(heterogenous) 세트로서 본다. 각 영역에 속하는 플래시 영역 정보 및 그 특성(property)을 파일 시스템에 노출하기 위한 표준 메카니즘이 존재하지 않는다. 이는 플래시 컴포넌트의 이용 및 성능을 비효율적이게 한다.
플래시 드라이버는 파일 시스템 및 기타 애플리케이션에 의해, 기본 플래시 컴포넌트를 기술하는, 영역의 외형(geometry) 등의, 보다 상세한 속성 및 특성(properties)을 결정하는 데에 이용될 수 있다. 이는 파일 시스템이, 예를 들면, 각 플래시 영역 및 그 특성을 인식할 수 있게 한다. 그 다음 파일 시스템은 플래시 컴포넌트를 보다 효율적으로 이용하도록 최적화될 수 있다. 이들 최적화는 컴포넌트의 수명을 늘리고 판독/기록 성능을 향상시킬 수 있다.
플래시 미디어 드라이버의 내부 API(애플리케이션 프로그래밍 인터페이스)는 플래시 추상화 계층에 하위-레벨 플래시 특성을 제공한다. I/O(입출력) 제어 코드 등의 플래시 드라이버 인터페이스는 플래시 드라이버에 의해 노출되고 플래시 및 드라이버 특성을 제공한다. 이러한 I/O 제어 코드는 파일 시스템 및 다른 애플리케이션에 의해 이용될 수 있다.
이 요약은 이하 상세한 설명에 더 기술될 간단한 형태로 된 개념의 선택을 소개하도록 제공된다. 이 요약은 청구된 요지의 핵심 특징 또는 필수적인 특징을 식별하는 것이라 의도되지 않으며, 청구된 요지의 범위를 제한하는 용도로 의도되지 않았다.
도 1은 예시적인 플래시 질의 시스템의 블록도.
도 2는 예시적인 플래시 질의 방법의 흐름도.
도 3은 예시적인 파일 시스템 레이아웃(layout)의 도면.
도 4는 예시적인 실시예 및 양태가 구현될 수 있는 예시적인 컴퓨팅 환경의 블록도.
플래시 추상화 계층 다중 객체 아키텍처 등의 플래시 저장 구조는 단일 플래시 컴포넌트의, 각각이 독립적으로 취급될 수 있는 영역들로의 물리적인 파티셔 닝(partitioning)을 할 수 있게 한다. 각각의 플래시 영역은 서로 분리되는 것이 바람직하고 플래시 추상화 계층 객체에 의해 관리될 수 있다. 플래시 추상화 계층 객체는 플래시 컴포넌트와의 인터페이스를 추상화하고 파티션 드라이버 및 파일 시스템 드라이버와 같은, 스택에서의 상위 계층에 이용되는 드라이버 인터페이스를 제공한다. 또한, 플래시 추상화 계층 다중 객체 아키텍처는 가변 블록 크기 플래시 컴포넌트를 지원한다. 가변 블록 크기 컴포넌트는 다른 영역과는 다른 블록 크기를 가지는 플래시 영역들을 포함한다.
플래시 저장 컴포넌트는 각각이 서로 다른 특징들을 가지는 분리된 물리적 영역들을 포함할 수 있다. 이 특징은, 예를 들면, 서로 다른 블록, 페이지, 및 섹터 크기, 고유한 판독/기록/소거 성능 속성, 및 판독전용, 판독/기록, 또는 1회 기록에 대한 기능을 포함한다. 영역들은 서로 다른 블록 크기 뿐만 아니라 고유한 성능 특성들을 가질 수 있다. 파일 시스템이 플래시 저장 컴포넌트의 특성 뿐만 아니라, 미래의 특성을 이용할 수 있도록 인터페이스가 제공된다.
도 1은 예시적인 플래시 질의 시스템의 블록도이다. 플래시 드라이버(15)는 파일 시스템 및 다른 애플리케이션에 의해, 기본 플래시 컴포넌트(10)를 기술하는, 영역의 외형 등의, 보다 상세한 속성 및 특성을 결정하는 데에 이용될 수 있다. 이는 파일 시스템(40)이, 예를 들면, 각 플래시 영역 및 그 특성을 인식할 수 있게 한다. 그 다음 파일 시스템은 플래시 컴포넌트(10)를 보다 효율적으로 이용하도록 최적화될 수 있다. 이들 최적화는 컴포넌트의 수명을 늘리고 판독/기록 성능을 향상시킬 수 있다. 본원에 이용되는 플래시 드라이버란 플래시를 관리하고 상위 계 층(예를 들면, 파티션 드라이버, 파일 시스템, 등)에 플래시를 노출하는 소프트웨어 컴포넌트 등의 컴포넌트를 말한다. 플래시 드라이버 인터페이스는 플래시 드라이버에 의해 상위 계층에 노출되는 API일 수 있다.
도 1에 관련하여, 플래시 미디어 드라이버(20) 및 플래시 추상화 계층(30)을 포함하는 플래시 드라이버(15)는 플래시 미디어 또는 저장 컴포넌트(10), 및/또는 시스템 레지스트리(50) 등의, 하드웨어로부터의 특성 정보 뿐만 아니라 기타 정보를 수신할 수 있다. 시스템 레지스트리(50)는 플래시 미디어 드라이버(20)에는 드라이버 구성 동안 검색된 하위-레벨 특성을, 및 플래시 추상화 계층(30)에는 드라이버 구성으로부터 검색된 상위-레벨 특성을 제공한다. 플래시 드라이버(15)는, 예를 들면, 파일 시스템(40)에 특성 정보를 제공할 수 있다. 하위-레벨 특성은, 예를 들면, 판독 속도, 기록 속도, 블록 크기, 등과 같은 플래시의 물리적 특징을 포함한다. 상위-레벨 특성은, 예를 들면, 판독-전용, 판독/기록, 예비 영역, 최소단위(atomic) 기록 등과 같은 소프트웨어가 부과되거나 시행될 수 있다.
플래시 컴포넌트(10)는, 예를 들면, NAND 또는 NOR 컴포넌트를 포함할 수 있으며, 플래시 미디어 드라이버(20)에 하위-레벨 특성을 제공하는 것이 바람직하다. 플래시 미디어 드라이버(20)는 장치에 특정일 수 있으며 플래시 컴포넌트(10)로의 직접적인 물리적 액세스에 관련되는 것이 바람직하다.
플래시 드라이버(15) 내에서, 플래시 컴포넌트(10)에 대한 하위-레벨 특성이 플래시 추상화 계층(30)에 제공된다. 플래시 추상화 계층(30)은 웨어-레벨링(wear-leveling), 판독 섹터 트랜젝션(transactions), 논리적 섹터의 물리적 섹 터로의 매핑(logical to physical sector mapping) 및 변환(translation)을 다루는 플래시 미디어 드라이버(20)의 상위의 계층이며, 매체 유형에 독립적이다.
예시적인 플래시 추상화 계층은 섹터 관리자, 논리적 섹터의 물리적 섹터로의 매핑기(mapper), 및 컴팩터(compactor)를 포함할 수 있다. 섹터 관리자는 매체의 빈(free) 섹터의 리스트를 관리하는 것을 담당할 수 있다. 섹터 관리자는 촉구될 때, 바람직하게는 매체의 다음 빈 섹터(이용가능하다면)를 반환할 것이다. 논리적 섹터의 물리적 섹터로의 매핑기는 논리적 섹터의 물리적 섹터로의 매핑을 반환하는 것을 담당할 수 있다. 파일 시스템은 추후에 매체의 임의적인 물리적 섹터에 매핑되는 논리적 섹터를 이용한다. 결과적으로, 플래시 추상화 계층은 바람직하게는 파일 시스템으로부터의 논리적 섹터 어드레스(address)를 매체 상의 대응하는 물리적 섹터 어드레스로 변환한다. 컴팩터(compactor)는 DIRTY 섹터를 FREE 섹터로 리사이클링(recycling)하는 것을 담당할 수 있다. 컴팩터는 어떤 섹터가 DIRTY이며 리사이클링될 수 있는지를 판정하기 위해, 전체 FLASH 블록을 분석하는 것이 바람직하다. 블록에서 DIRTY가 아닌 섹터라면 무엇이든지 매체의 다른 영역에 다시 매핑될 수 있다.
예시적인 플래시 미디어 드라이버는 플래시 장치로의 실질적인 I/O를 수행하는 것을 담당하는 플러깅가능한(pluggable) 컴포넌트이다. 바람직하게는, 플래시 미디어 드라이버는 플래시 메모리 장치의 판독/기록/소거에 이용되는 장치-특정 코드를 포함한다.
보다 상세히는, 예를 들어, 플래시 컴포넌트(10) 및/또는 시스템 레지스트 리(50)로부터의 특성 및 기타 정보가 플래시 추상화 계층(30)에 제공된다. 플래시 추상화 계층(30)은 파일 시스템(40)에 정보(하드웨어의 범위 및 특성)를 제공한다. 따라서, 플래시 컴포넌트(10) 및 플래시 드라이버(15)의 특성은 플래시 드라이버(15)로부터 파일 시스템(40)으로 제공된다.
2개의 인터페이스: 플래시 추상화 계층(30)이 플래시 미디어 드라이버(20)에 질의하기 위한 인터페이스, 및 플래시 추상화 계층(30)으로부터 파일 시스템(40)에 정보를 제공하기 위한 인터페이스가 제공된다. 이 인터페이스는, 예를 들면, I/O 제어 코드를 이용하여 질의되는 구조를 이용하여 구현될 수 있다. 플래시 미디어 드라이버(20)는 플래시 컴포넌트(10)의 물리적 특징에 속하는 정보를 플래시 추상화 계층(30)에 제공하고, 그 다음 플래시 추상화 계층(30)은 이 정보를 파일 시스템(40)에 제공하여, 파일 시스템(40)에서는 정보가 이용될 수 있다.
예로서, 플래시 드라이버(15)는 플래시 추상화 계층(30)에 하위-레벨 플래시 특성을 제공하는 플래시 미디어 드라이버(20)의 내부 API(애플리케이션 프로그램 인터페이스)를 포함할 수 있다. 플래시 드라이버 인터페이스는 노출되어 플래시 및 드라이버 특성을 제공하는 I/O(입출력) 제어 코드를 포함할 수 있다. 이 I/O 제어 코드는, 예를 들면, 파일 시스템(40) 및 기타 애플리케이션에 의해 이용될 수 있다.
플래시 미디어 드라이버(20)는 하드웨어에 특정인 것이 바람직하며, 플래시 컴포넌트(10)의 기존의 특성을 활용할 수 있다. 대안으로, 사용자는, 예를 들면, 사용자의 드라이버에 플래시 미디어 드라이버 기능에 대한 지원을 추가함으로써 플 래시 미디어 드라이버(20)를 작성(create)할 수 있다. 플래시 추상화 계층(30)은 플래시 미디어 드라이버(20)의 기능 및 특성을 이용한다.
도 2는 예시적인 플래시 질의 방법의 흐름도이다. 단계(200)에서, 플래시 미디어 드라이버는 플래시 컴포넌트로부터 하위-레벨 특성을 검색한다. 단계(210)에서, 플래시 미디어 드라이버는 시스템 레지스트리를 통해 드라이버 구성으로부터 하위-레벨 특성을 검색할 수 있다. 단계(220)에서 플래시 미디어 드라이버는 검색된 하위-레벨 특성을 플래시 추상화 계층에 제공한다. 단계(230)에서 플래시 추상화 계층은 시스템 레지스트리를 통해 드라이버 구성으로부터 상위-레벨 특성을 검색한다. 단계(240)에서 하위-레벨 및 상위-레벨 모두의 특성이 파일 시스템에 제공된다.
플래시 미디어 드라이버 API는 플래시 컴포넌트에 대한 일반적인 하위-레벨 상세를 제공한다. 이 API는 플래시 컴포넌트의 외형(geometry) 및 이 컴포넌트의 임의의 예비 부분을 기술할 수 있다. 예를 들면, 플래시 미디어 드라이버에 의해 제공될 수 있는 API에 대하여 4개의 정보 레벨: 기본 플래시 정보, 플래시 영역 표준 정보, 플래시 영역 성능 정보, 및 플래시 예비 표준 정보가 있다. 이 정보는 플래시 하드웨어 자체로부터 획득된다. API는 요구사항(requirements) 및 선호도(preferences)가 변경될 때 추가적인 정보 레벨을 지원하도록 확장될 수 있다고 고려된다.
기본 플래시 정보는, 예를 들어, 플래시 유형: NAND 또는 NOR; 제조자 ID; 일련 번호; 영역 개수; 및 예비 영역 개수 등의 플래시 컴포넌트에 대한 일반적인 정보를 포함하는 것이 바람직하다.
플래시 영역 표준 정보는, 예를 들면, 영역 특성(판독-전용, 1회-기록, 순차형 프로그래밍이 요구됨(sequential programming required)(MLC 플래시)); 페이지 프로그램 제한(limit); 물리적 외형 및 논리적 외형; 섹터 당 데이터 바이트; 및 섹터 당 여유(spare) 바이트 등의 영역의 기본 특성들을 각각이 기술하는, 플래시 영역 당 1개인 구조체(structure)들의 어레이를 포함하는 것이 바람직하다.
플래시 영역 성능 정보는, 예를 들면, 판독 처리량(throughput); 기록 처리량; 소거 시간; 판독 셋업(setup) 시간; 및 기록 셋업 시간 등의, 영역의 성능 특징을 각각이 기술하는, 플래시 영역 당 1개의 구조체들의 어레이를 포함하는 것이 바람직하다.
플래시 예비 표준 정보는, 예를 들면, 예비 영역 이름, 예비 영역의 위치 및 크기; 및 예비 영역 특성(판독-전용, 1회-기록) 등의, 각각이 예비 영역을 기술하는, 예비 플래시 영역 당 1개의 구조체들의 어레이를 포함하는 것이 바람직하다. 예비 영역은 파일 시스템으로부터 가려져 있는 것이 바람직하다. 이 정보는 플래시 하드웨어로부터 발생할 수 있거나 발생하지 않을 수 있다.
플래시 미디어 드라이버에 의해 제공되는 정보는 복수의 위치로부터 수집될 수 있다. 예를 들면, 일부 정보는 플래시 미디어 드라이버 코드로 하드-코딩될 수 있고, 일부 정보는 시스템 레지스트리로부터 판독될 수 있으며, 일부는 공통 플래시 인터페이스(common flash interface; CFI) 또는 기타 수단을 통해 플래시 컴포넌트로부터 직접 검색될 수 있다. 분리된 영역이 없는 플래시 컴포넌트는 전체 플 래시 컴포넌트를 스패닝(spanning)하는 하나의 영역을 보고할 수 있다.
플래시 추상화 계층은 바람직하게는 자신의 정보를 플래시 미디어 드라이버에 의해 제공되는 정보와 결합하여 I/O 제어 코드 등의 인터페이스를 통해 노출되는 플래시 특성의 풍부한 세트(rich set)를 형성할 것이다. 플래시 미디어 드라이버에 의해 제공될 수 있는 이러한 API에 대해서는 4개의 정보 레벨: 표준 정보, 영역 표준 정보, 영역 성능 정보, 및 예비 표준 정보가 존재한다. API는 요구사항 및 선호도가 변경될 때 추가적인 정보 레벨을 지원하도록 확장될 수 있다. 이 정보는 플래시 미디어 드라이버에서의 정보와 유사하다. 이는 제3자 플래시 소프트웨어 제공자가 노출하였을 정보이다.
표준 정보는, 예를 들면, 제조자 ID; 일련 번호; 영역 개수; 및 예비 영역 개수 등의 전체 저장 장치에 대한 일반적인 정보를 포함한다.
영역 표준 정보는 바람직하게는 저장 장치 내의 개별적인 영역의 특징 및 특성을 포함한다. 복수의 개별 영역이 없는 저장 장치에서는, 전체 장치를 기술하기 위해 하나의 구조체가 이용될 수 있다. 여기서 정보는, 예를 들면, 이 영역의 특성(판독-전용, 판독/기록, 1회-기록, XIP, 최소단위(atomic) 기록); 이 영역에 의해 지원되는 특징(섹터 삭제; 보안 와이프(wipe), 캐시 플러시(flush)); 섹터 및 블록 크기; 총 섹터 카운트; 및 여유 블록 카운트를 포함한다.
영역 성능 정보는 바람직하게는 저장 장치 내의 개별적인 영역의 성능 특성(performance capabilities)을 포함한다. 복수의 개별 영역이 없는 저장 장치에서는, 전체 장치를 기술하기 위해 하나의 구조체가 이용될 수 있다. 정보는, 예를 들면, 바람직한 판독 전송 크기(섹터의 개수); 바람직한 기록 전송 크기(섹터의 개수); 판독 전송률; 기록 전송률; 판독 셋업 시간; 및 기록 셋업 시간을 포함할 수 있다.
예비 표준 정보는 바람직하게는, 예를 들어, 예비 영역의 이름; 예비 영역의 위치 및 크기; 및 예비 영역의 특성(판독-전용, 1회-기록) 등의 표준 판독 및 기록 동작을 통해 액세스불가한 저장 장치의 예비 영역에 대한 정보를 포함한다.
플래시 드라이버에 대한 지원은 플래시 장치에 한정되지 않으며, 장치 특성을 기술하는 풍부한 정보 세트가 제공될 필요가 있는 (하드 디스크, 분리형 플래시 카드, 등) 다른 매체에 의해 지원될 수 있다.
파일 시스템 이용률(utilization)에 관련해서는, 플래시 드라이버에 의해 풍부한 정보가 제공되어, 파일 시스템이 성능을 높이고 컴포넌트의 수명을 늘리기 위해 플래시 컴포넌트를 더 잘 이용하는 것이 가능해진다. 예를 들면, 플래시 컴포넌트는 2개의 블록 크기 - 컴포넌트의 제1 영역은 SLC 플래시로서 덜 조밀하게 구성되고(섹터 0 내지 섹터 N), 플래시의 나머지는 더 조밀한 MLC 플래시로서 구성됨(섹터 N+1 내지 M) - 로 구성될 수 있다. MLC 및 SLC는 2개의 현재 이용가능한 플래시의 범주이다.
예시적인 파일 시스템 레이아웃이 도 3에 도시된다. 파일 시스템 레이아웃(300)은 2개의 영역: 파일 할당 테이블(325)을 포함하는 영역(320) 및 파일 및 디렉터리 데이터(345)를 포함하는 영역(340)을 포함한다. 영역(320)은, 예를 들어, 밀도가 블록 당 23 섹터이며, 높은 판독/기록 성능을 가질 수 있다. 영 역(340)은 밀도가, 예를 들면, 블록 당 64 섹터이며, 중간 정도의 판독/기록 성능을 가질 수 있다.
파일 할당 테이블(325)의 블록 0 내지 N은 파일 및 디렉터리 데이터(345)의 블록 N+1 내지 M 보다 작다. 따라서 0 내지 N은 N+1 내지 M 보다 적은 데이터를 가진다. (예를 들면) 큰 블록 보다 작은 블록을 소거하는 것이 더 빠르기 때문에, 파일 시스템이 작은 블록으로 자주 판독하고 기록하는 데이터를 넣는(put) 것이 바람직하다. 이는 시스템을 고속화시킨다.
이러한 예시적인 플래시 구성은 플래시의 SLC 영역에 대한 성능을 높이고 블록 크기를 줄여, 이 영역을 메타데이터와 같이 자주 액세스되는 데이터에 바람직하게 한다. 이 파일 시스템은 플래시의 SLC 영역 내에서의 자신의 자주 액세스되는 파일 할당 테이블(325)을 저장하도록 선택하여, 파일 및 디렉터리 데이터(345)를 플래시의 남아있는 MLC 영역에 넣을 수 있다. 이 예시적인 레이아웃은 데이터를 더 저장하기 위해 MLC 플래시의 밀도 및 가장 자주 액세스되는 섹터에 대한 SLC의 성능을 높히는 것을 강화한다. 루트 디렉터리 내용을 SLC 영역에 저장하는 것과 같이 다른 최적화 또한 성능을 향상시킬 수 있다.
예시적인 컴퓨팅 구성
도 4는 예시적인 실시예 및 양태가 구현될 수 있는 예시적인 컴퓨팅 환경을 도시한다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성이 이용될 수 있다. 사용하는 데 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 내장형 시스템, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다.
컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어가 이용될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 통신 네트워크 또는 다른 데이터 전송 매체를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경이 이용될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈 및 기타 데이터는 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치할 수 있다.
도 4를 참조해 보면, 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함할 수 있지만 이에 제한되는 것은 아니다. 처 리 장치(120)는 멀티-스레딩된 프로세서에서 지원되는 처리 장치와 같은 복수의 논리적 처리 장치를 나타낼 수 있다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standard Association) 로컬 버스, 그리고 (메자닌 버스(Mezzanine bus)로도 알려진) PCI(Peripheral Component Interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 또한 통신 장치들 중에서도, 포인트-투-포인트 접속, 스위칭 패브릭(fabric), 등으로 구현될 수 있다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장하는 데에 이용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함하지만 이에 제한되지 않는다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 4는 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 한정되지 않는다.
컴퓨터(110)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매 체를 포함할 수 있다. 단지 예로서, 도 4는 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 이동식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 도시하고 있다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 4에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(110)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 4에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162), 및 통상적으로 마우스, 트랙볼(trackball) 또는 터치 패드라 불리우는 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 또 하나의 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함하지만, 도 4에는 메모리 저장 장치(181)만이 도시되어 있다. 도 4에 도시된 논리적 접속으로는 LAN(171) 및 WAN(173)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적 인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스, 즉, 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 4는 원격 애플리케이션 프로그램(185)이 원격 컴퓨터(180)에 있는 것으로 도시하고 있다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
본원 요지는 구조적인 특징 및/또는 방법론적인 행위에 특정된 언어로 기술되었지만, 첨부된 청구범위에 정의된 요지는 상술한 특정 특징 및 행위에 반드시 제한되는 것은 아니라고 이해되어야 한다. 오히려, 상술한 특정 특징 및 행위는 청구항을 구현하는 예시적인 형태로서 기술된 것이다.

Claims (20)

  1. 프로세서를 포함하는 플래시 컴포넌트 질의 시스템(flash component querying system)으로서,
    상기 프로세서에 의해 실행되며, 플래시 컴포넌트에 관한 데이터를 보유하는 플래시 드라이버, 및
    상기 플래시 드라이버로부터 상기 데이터를 수신하는 파일 시스템을 포함하고,
    상기 데이터는 상기 플래시 컴포넌트의 복수의 분리된 영역의 특징(characteristics of a plurality of discrete regions)을 포함하고, 상기 특징은 상기 복수의 분리된 영역 중 하나 이상의 분리된 영역에 대한 성능 정보를 포함하고, 상기 성능 정보는 상기 하나 이상의 분리된 영역의 성능 레벨(performance level)을 나타내며, 상기 파일 시스템은 적어도 부분적으로, 빈번히 액세스되는 정보에 대해 상위 성능 레벨과 연관된 하나 이상의 분리된 영역을 이용함으로써 파일 시스템 레이아웃 및 상기 플래시 컴포넌트의 사용을 최적화하도록 상기 데이터를 사용하는,
    플래시 컴포넌트 질의 시스템.
  2. 제1항에 있어서,
    상기 데이터는 상기 플래시 컴포넌트에 관한 특성(property) 정보를 더 포함하는
    플래시 컴포넌트 질의 시스템.
  3. 제1항에 있어서,
    상기 플래시 드라이버는 상기 플래시 컴포넌트에 관한 데이터를 상기 플래시 컴포넌트로부터 수신하도록 적응된
    플래시 컴포넌트 질의 시스템.
  4. 제1항에 있어서,
    상기 플래시 드라이버는
    플래시 미디어 드라이버, 및
    상기 플래시 미디어 드라이버와 통신하는 플래시 추상화 계층을 포함하는
    플래시 컴포넌트 질의 시스템.
  5. 제4항에 있어서,
    상기 플래시 미디어 드라이버에 하위-레벨 특성을 제공하고, 상기 플래시 추상화 계층에 상위-레벨 특성을 제공하는 시스템 레지스트리(registry)를 더 포함하는
    플래시 컴포넌트 질의 시스템.
  6. 제5항에 있어서,
    상기 플래시 미디어 드라이버는 상기 플래시 추상화 계층에 상기 하위 레벨 특성을 제공하도록 적응된
    플래시 컴포넌트 질의 시스템.
  7. 제4항에 있어서,
    상기 플래시 미디어 드라이버는 상기 플래시 컴포넌트에 관한 데이터를 상기 플래시 컴포넌트로부터 수신하도록 적응된
    플래시 컴포넌트 질의 시스템.
  8. 제1항에 있어서,
    상기 특징 데이터는 상기 플래시 컴포넌트의 상기 복수의 분리된 영역 각각에서의 상이한 블록, 페이지, 또는 섹터 크기 및 상이한 성능 속성 중 적어도 하나에 관한 정보를 더 포함하는
    플래시 컴포넌트 질의 시스템.
  9. 플래시 컴포넌트에 질의하는 방법으로서,
    플래시 드라이버에서 플래시 컴포넌트의 특성에 관한 데이터를 수신하는 단계- 상기 데이터는 상기 플래시 컴포넌트의 복수의 분리된 영역의 특징을 더 포함하고, 상기 특징은 상기 복수의 분리된 영역 중 하나 이상의 분리된 영역에 대한 성능 정보를 포함하고, 상기 성능 정보는 상기 하나 이상의 분리된 영역의 성능 레벨을 나타냄 -;
    상기 수신된 데이터를 파일 시스템에 제공하는 단계; 및
    적어도 부분적으로, 빈번히 액세스되는 정보에 대해 상위 성능 레벨과 연관된 하나 이상의 분리된 영역을 이용함으로써 파일 시스템 레이아웃 및 상기 플래시 컴포넌트의 사용을 최적화하도록 상기 파일 시스템에 의해 상기 데이터를 사용하는 단계
    를 포함하는 플래시 컴포넌트 질의 방법.
  10. 제9항에 있어서,
    상기 플래시 컴포넌트에 관한 데이터를 수신하는 단계는
    상기 플래시 컴포넌트로부터 데이터를 수신하는 단계를 포함하는
    플래시 컴포넌트 질의 방법.
  11. 제9항에 있어서,
    상기 플래시 컴포넌트에 관한 데이터를 수신하는 단계는
    시스템 레지스트리로부터 데이터를 수신하는 단계를 포함하는
    플래시 컴포넌트 질의 방법.
  12. 제9항에 있어서,
    상기 플래시 드라이버는 플래시 미디어 드라이버를 포함하고,
    상기 플래시 컴포넌트에 관한 데이터를 수신하는 단계는 상기 플래시 미디어 드라이버를 이용하여 데이터를 검색하는 단계를 포함하는
    플래시 컴포넌트 질의 방법.
  13. 제12항에 있어서,
    상기 플래시 드라이버는 상기 플래시 미디어 드라이버와 통신하는 플래시 추상화 계층을 포함하고,
    상기 플래시 추상화 계층에 상기 검색된 데이터를 제공하는 단계를 더 포함하는
    플래시 컴포넌트 질의 방법.
  14. 제13항에 있어서,
    시스템 레지스트리를 통해 드라이버 구성으로부터 상기 플래시 추상화 계층에 상위-레벨 특성을 제공하는 단계를 더 포함하는
    플래시 컴포넌트 질의 방법.
  15. 제9항에 있어서,
    상기 특징 데이터는 상기 플래시 컴포넌트의 상기 복수의 분리된 영역 각각에서의 상이한 블록, 페이지, 또는 섹터 크기 및 상이한 성능 속성 중 적어도 하나에 관한 정보를 더 포함하는
    플래시 컴포넌트 질의 방법.
  16. 플래시 드라이버를 구현하도록 컴퓨터에 의해 실행가능한 컴퓨터 실행가능 명령어들을 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 실행가능 명령어들은,
    플래시 컴포넌트에 관한 데이터를 보유하는 플래시 미디어 드라이버를 구현하는 컴퓨터 실행가능 명령어,
    상기 플래시 미디어 드라이버로부터 상기 데이터를 수신하고 상기 데이터를 파일 시스템에 제공하는 플래시 추상화 계층을 구현하는 컴퓨터 실행가능 명령어를 포함하고,
    상기 데이터는 상기 플래시 컴포넌트의 복수의 분리된 영역의 특징을 포함하고, 상기 특징은 상기 복수의 분리된 영역 중 하나 이상의 분리된 영역에 대한 성능 정보를 포함하고, 상기 성능 정보는 상기 하나 이상의 분리된 영역의 성능 레벨을 나타내며, 상기 데이터는, 적어도 부분적으로, 빈번히 액세스되는 정보에 대해 상위 성능 레벨과 연관된 하나 이상의 분리된 영역을 이용함으로써 파일 시스템 레이아웃 및 상기 플래시 컴포넌트의 사용을 최적화하도록 상기 파일 시스템에 의해 사용되는
    컴퓨터 판독가능 저장 매체.
  17. 제16항에 있어서,
    상기 특징 데이터는 상기 플래시 컴포넌트의 상기 복수의 분리된 영역 각각에서의 상이한 블록, 페이지, 또는 섹터 크기 및 상이한 성능 속성 중 적어도 하나에 관한 정보를 더 포함하는
    컴퓨터 판독가능 저장 매체.
  18. 제16항에 있어서,
    상기 플래시 미디어 드라이버는 상기 플래시 컴포넌트로부터 상기 데이터를 수신하도록 적응된
    컴퓨터 판독가능 저장 매체.
  19. 제16항에 있어서,
    상기 플래시 미디어 드라이버는, 시스템 레지스트리로부터, 상기 플래시 미디어 드라이버에서 하위 레벨 특성을 수신하고, 상기 플래시 추상화 계층에서 상위 레벨 특성을 수신하도록 적응된
    컴퓨터 판독가능 저장 매체.
  20. 제19항에 있어서,
    상기 플래시 미디어 드라이버는 상기 플래시 추상화 계층에 상기 하위 레벨 특성을 제공하도록 적응된
    컴퓨터 판독가능 저장 매체.
KR1020087023251A 2006-03-30 2008-09-23 플래시 컴포넌트 질의 시스템, 플래시 컴포넌트 질의 방법 및 컴퓨터 판독가능 저장 매체 KR101376937B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/393,349 2006-03-30
US11/393,349 US7779426B2 (en) 2006-03-30 2006-03-30 Describing and querying discrete regions of flash storage
PCT/US2007/004723 WO2007120394A1 (en) 2006-03-30 2007-02-23 Describing and querying discrete regions of flash storage

Publications (2)

Publication Number Publication Date
KR20080104337A KR20080104337A (ko) 2008-12-02
KR101376937B1 true KR101376937B1 (ko) 2014-03-20

Family

ID=38576906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087023251A KR101376937B1 (ko) 2006-03-30 2008-09-23 플래시 컴포넌트 질의 시스템, 플래시 컴포넌트 질의 방법 및 컴퓨터 판독가능 저장 매체

Country Status (12)

Country Link
US (1) US7779426B2 (ko)
EP (1) EP1999592A4 (ko)
JP (1) JP5238685B2 (ko)
KR (1) KR101376937B1 (ko)
CN (1) CN101416165B (ko)
AU (1) AU2007239066B2 (ko)
BR (1) BRPI0708916A8 (ko)
CA (1) CA2643332C (ko)
IL (1) IL193446A (ko)
MX (1) MX2008011916A (ko)
RU (1) RU2433455C2 (ko)
WO (1) WO2007120394A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100874702B1 (ko) 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
US8166267B2 (en) 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US7917686B2 (en) * 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8209461B2 (en) * 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
TWI368224B (en) * 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
US8200904B2 (en) * 2007-12-12 2012-06-12 Sandisk Il Ltd. System and method for clearing data from a cache
US8443260B2 (en) 2007-12-27 2013-05-14 Sandisk Il Ltd. Error correction in copy back memory operations
TWI375953B (en) * 2008-02-21 2012-11-01 Phison Electronics Corp Data reading method for flash memory, controller and system therof
TWI425523B (zh) * 2008-03-25 2014-02-01 Asmedia Technology Inc 混合型快閃儲存裝置及其操作方法
US8819563B2 (en) 2008-04-03 2014-08-26 Dell Products L.P. Systems and methods for accessing system utilities
US9594679B2 (en) * 2008-05-01 2017-03-14 Sandisk Il Ltd. Flash cache flushing method and system
JP4683438B2 (ja) * 2008-06-13 2011-05-18 讀賣テレビ放送株式会社 データ放送システム、データ放送方法及びプログラム
US8261009B2 (en) * 2008-12-30 2012-09-04 Sandisk Il Ltd. Method and apparatus for retroactive adaptation of data location
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US8880835B2 (en) * 2009-07-07 2014-11-04 International Business Machines Corporation Adjusting location of tiered storage residence based on usage patterns
US8234520B2 (en) * 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
TWI434284B (zh) * 2009-12-03 2014-04-11 Silicon Motion Inc 主動式快閃管理之方法以及相關之記憶裝置及其控制器
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US9703500B2 (en) 2012-04-25 2017-07-11 International Business Machines Corporation Reducing power consumption by migration of data within a tiered storage system
CN102830941B (zh) * 2012-06-15 2016-03-30 记忆科技(深圳)有限公司 固态硬盘的驱动方法及其存储系统
KR20140069659A (ko) * 2012-11-29 2014-06-10 성균관대학교산학협력단 플래시 메모리용 파일 시스템
WO2016192025A1 (en) 2015-06-01 2016-12-08 SZ DJI Technology Co., Ltd. Systems and methods for memory architecture
GB2541916B (en) * 2015-09-03 2018-05-09 Gurulogic Microsystems Oy Method of operating data memory and device utilizing method
US10420928B2 (en) 2015-12-14 2019-09-24 Medtronic, Inc. Implantable medical device having a scheme for managing storage of data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078542A1 (en) 2002-10-14 2004-04-22 Fuller William Tracy Systems and methods for transparent expansion and management of online electronic storage

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6598169B1 (en) 1999-07-26 2003-07-22 Microsoft Corporation System and method for accessing information made available by a kernel mode driver
US7103625B1 (en) 1999-10-05 2006-09-05 Veritas Operating Corporation Virtual resource ID mapping
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
JP2003216491A (ja) * 2002-01-23 2003-07-31 Hitachi Ltd 階層キャッシュ制御方法
US6621746B1 (en) * 2002-02-27 2003-09-16 Microsoft Corporation Monitoring entropic conditions of a flash memory device as an indicator for invoking erasure operations
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US7277978B2 (en) * 2003-09-16 2007-10-02 Micron Technology, Inc. Runtime flash device detection and configuration for flash data management software
US7321951B2 (en) * 2003-11-17 2008-01-22 Micron Technology, Inc. Method for testing flash memory power loss recovery
US7480760B2 (en) * 2003-12-17 2009-01-20 Wegener Communications, Inc. Rotational use of memory to minimize write cycles
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US20050204091A1 (en) * 2004-03-11 2005-09-15 Kilbuck Kevin M. Non-volatile memory with synchronous DRAM interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078542A1 (en) 2002-10-14 2004-04-22 Fuller William Tracy Systems and methods for transparent expansion and management of online electronic storage

Also Published As

Publication number Publication date
AU2007239066B2 (en) 2011-07-28
EP1999592A4 (en) 2010-09-15
CA2643332A1 (en) 2007-10-25
CN101416165A (zh) 2009-04-22
BRPI0708916A2 (pt) 2011-06-14
KR20080104337A (ko) 2008-12-02
US7779426B2 (en) 2010-08-17
IL193446A0 (en) 2009-05-04
JP5238685B2 (ja) 2013-07-17
JP2009532761A (ja) 2009-09-10
EP1999592A1 (en) 2008-12-10
IL193446A (en) 2014-03-31
RU2433455C2 (ru) 2011-11-10
RU2008138708A (ru) 2010-04-10
CA2643332C (en) 2014-09-09
US20070239927A1 (en) 2007-10-11
AU2007239066A1 (en) 2007-10-25
CN101416165B (zh) 2012-06-27
MX2008011916A (es) 2008-09-29
WO2007120394A1 (en) 2007-10-25
BRPI0708916A8 (pt) 2017-01-17

Similar Documents

Publication Publication Date Title
KR101376937B1 (ko) 플래시 컴포넌트 질의 시스템, 플래시 컴포넌트 질의 방법 및 컴퓨터 판독가능 저장 매체
US7599972B2 (en) File system having variable logical storage block size
KR101433859B1 (ko) 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US6999913B2 (en) Emulated read-write disk drive using a protected medium
US11782632B2 (en) Selective erasure of data in a SSD
US9477487B2 (en) Virtualized boot block with discovery volume
JP5194005B2 (ja) メディアファイルを管理するためのアプリケーションプログラムインターフェース
KR20110110099A (ko) 정의된 호스트 성능과 호환할 수 있는 파일들만을 호스트들에 나타내는 스토리지 디바이스
US20190391756A1 (en) Data storage device and cache-diversion method thereof
KR20080074584A (ko) 메모리 시스템 및 그것의 데이터 저장 방법
US11409451B2 (en) Systems, methods, and storage media for using the otherwise-unutilized storage space on a storage device
US20110271064A1 (en) Storage device and method for accessing the same
Park et al. New techniques for real-time FAT file system in mobile multimedia devices
US20050076185A1 (en) Storage system to store data in hierarchical data structures
CN115390747A (zh) 存储设备及其操作方法
CN109656881B (zh) 一种基于fat16技术实现文件动态管理的方法和系统
WO2024060944A1 (zh) 键值存储方法及系统
KR20080054619A (ko) Ext2 파일 시스템의 파일 분할 방법

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: 20170220

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 7