KR101606453B1 - 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법 - Google Patents

비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법 Download PDF

Info

Publication number
KR101606453B1
KR101606453B1 KR1020090041750A KR20090041750A KR101606453B1 KR 101606453 B1 KR101606453 B1 KR 101606453B1 KR 1020090041750 A KR1020090041750 A KR 1020090041750A KR 20090041750 A KR20090041750 A KR 20090041750A KR 101606453 B1 KR101606453 B1 KR 101606453B1
Authority
KR
South Korea
Prior art keywords
data storage
storage device
host
clusters
file
Prior art date
Application number
KR1020090041750A
Other languages
English (en)
Other versions
KR20100122720A (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 KR1020090041750A priority Critical patent/KR101606453B1/ko
Priority to US12/772,381 priority patent/US8825942B2/en
Publication of KR20100122720A publication Critical patent/KR20100122720A/ko
Application granted granted Critical
Publication of KR101606453B1 publication Critical patent/KR101606453B1/ko

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • 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/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 단편화되는 파일 시스템에 의해 저하되는 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능을 향상시키는 방법에 대하여 개시된다. 비휘발성 데이터 저장 장치의 읽기 방법은, 패턴들을 수집하여 로그들을 생성하는 단계, 로그들을 기반으로 연속적으로 읽히는 논리 주소들을 추출하는 단계, 연속적으로 읽히는 논리 주소들이 맵핑되는 비휘발성 데이터 저장 장치의 물리 주소의 상태를 점검하는 단계, 연속적으로 읽히는 논리 주소들의 데이터들을 인터리빙이 가능한 단위로 읽히도록 재배치하는 단계, 그리고 재배치된 데이터들을 인터리빙 방식으로 읽는 단계를 포함한다. 비휘발성 데이터 저장 장치의 쓰기 방법은, 호스트의 파일 시스템 내 프리-클러스터 정보를 읽는 단계, 프리-클러스터의 논리 주소에 맵핑되는 상기 비휘발성 데이터 저장 장치의 물리 주소의 상태를 점검하는 단계, 프리-클러스터에 맵핑되는 물리 주소들이 순차적으로 인터리빙 가능하도록 맵핑 정보를 변경하는 단계, 그리고 프리-클러스터에 할당되는 데이터를 인터리빙 방식으로 쓰는 단계를 포함한다.
비휘발성 데이터 저장 장치, 호스트, 파일 시스템, 로그, 메타 정보, 프리-클러스터, 비트맵 정보

Description

비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법{Method of read/write performance of non-volatile data storage device}
본 발명은 비휘발성 데이터 저장 장치에 관한 것으로, 특히 단편화되는 파일 시스템에 의해 저하되는 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능을 향상시키는 방법에 관한 것이다.
비휘발성 메모리 장치들은 데이터 보존성이 우수하기 때문에, 메모리 시스템에서 저장 매체로 사용된다. 비휘발성 메모리 장치들은 기존의 하드 디스크 또는 플라피 디스크를 대체할 만한 고집적 대용량 소자로서 주목받고 있다. 현재 비휘발성 메모리 장치들은 휴대폰, 디지털 카메라, MP3 플레이어, SSD(Solid State Drive) 등의 저장 매체로 사용되고 있다.
비휘발성 메모리 장치들 중 플래쉬 메모리 장치는 플래쉬 메모리 장치 기반의 저장 매체는 호스트 컴퓨터의 기록 장치로서 사용된다. 플래쉬 메모리 장치는 복수개의 블록들, 예컨대 1024 블록, 2048 블록 등으로 이루어진다. 하나의 블록은 복수개의 페이지들, 예컨대 16 페이지, 32 페이지 또는 64 페이지 등으로 이루어진다. 플래쉬 메모리 장치에 있어서, 블록은 데이터 소거 동작의 기본 단위가 되고, 페이지는 데이터 쓰기 및 읽기 동작의 기본 단위가 된다. 플래쉬 메모리 장치는 쓰기 동작에 앞서 블록 단위의 소거 동작이 선행되어야 하는, 즉 블록 단위로 데이터를 관리해야 하는 특징이 있다.
호스트 컴퓨터 내 파일 시스템은, 임의의 파일을 생성할 때 전체 파일 크기에 대응되는 복수개의 클러스터들(clusters)을 연속적으로 또는 불연속적으로 할당한다. 파일 시스템이 포맷된 초기에 파일이 생성될 때에는 클러스터들이 연속적으로 할당되지만, 파일 시스템을 연속적으로 사용하다 보면 잦은 파일의 생성 및 삭제에 의해 파일 시스템이 단편화(fragmentation)된다. 기본적으로 하나의 클러스터는 고유의 논리 블록 어드레스(Logical Block Address:LBA, 이하 "논리 주소"라 칭한다)를 가진다. 사용자가 대용량의 파일을 기록할 때, 파일 시스템의 단편화에 의해 불연속적인 클러스터들이 할당되면, 사용자 데이터는 플래쉬 메모리 장치에 임의 쓰기 성능을 보이면서 기록되고, 차후 이 파일을 읽을 때에도 불연속적인 클러스터 정보에 맵핑(mapping)되는 불연속적인 논리 주소에 의해 임의(random) 읽기 성능을 경험하게 된다.
플래쉬 메모리 장치는 읽기 성능이 우수한 순차 읽기 성능을 가짐에도 불구하고, 파일 시스템이 단편화되면 될수록 열등한 임의 읽기 성능으로 편향될 수밖에 없다. 마찬가지로, 쓰기 성능이 우수한 순차 쓰기 성능을 가짐에도 불구하고, 파일 시스템의 단편화에 의해 열등한 임의 쓰기 성능으로 편향될 수밖에 없는 문제점을 지닌다.
따라서, 플래쉬 메모리 장치의 읽기 및 쓰기 성능을 향상시킬 개선 방안이 요구된다.
본 발명의 목적은 단편화되는 파일 시스템에 의해 저하되는 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능을 향상시키는 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 읽기 및 쓰기 향상 방법을 구현하는 비휘발성 데이터 저장 장치를 제공하는 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일면에 따른 비휘발성 데이터 저장 장치의 읽기 방법은, 패턴들을 수집하여 로그들을 생성하는 (a) 단계, 로그들을 기반으로 연속적으로 읽히는 논리 주소들을 추출하는 (b) 단계, 연속적으로 읽히는 논리 주소들이 맵핑되는 비휘발성 데이터 저장 장치의 물리 주소의 상태를 점검하는 (c) 단계, 연속적으로 읽히는 논리 주소들의 데이터들을 인터리빙이 가능한 단위로 읽히도록 재배치하는 (d) 단계, 그리고 재배치된 데이터들을 인터리빙 방식으로 읽는 (e) 단계를 포함한다.
본 발명의 실시예들에 따라, 비휘발성 데이터 저장 장치의 읽기 방법은 호스트의 유휴 시간에 (b) 단계 내지 (e) 단계를 수행할 수 있다.
상기 목적을 달성하기 위하여, 본 발명의 다른 면에 따른 비휘발성 데이터 저장 장치의 읽기 방법은, 호스트의 파일 시스템 내 메타 정보를 분석하는 단계, 메타 정보에서 파일을 구성하는 클러스터 정보를 추출하는 단계, 추출된 클러스터에 맵핑되는 비휘발성 데이터 저장 장치의 물리 주소의 상태를 점검하는 단계, 추 출된 클러스터에 기록된 데이터들을 인터리빙이 가능한 단위로 읽히도록 재배치하는 단계, 그리고 재배치된 데이터들을 인터리빙 방식으로 읽는 단계를 포함한다.
본 발명의 실시예들에 따라, 메타 정보는 FAT(File Allocation Table) 파일 시스템 내 디렉토리 엔트리와 FAT 테이블에서 추출될 수 있고, 호스트의 유휴 시간에 분석될 수 있다.
상기 목적을 달성하기 위하여, 본 발명의 또다른 면에 따른 비휘발성 데이터 저장 장치의 쓰기 방법은, 호스트의 파일 시스템 내 프리-클러스터 정보를 읽는 단계, 프리-클러스터의 논리 주소에 맵핑되는 상기 비휘발성 데이터 저장 장치의 물리 주소의 상태를 점검하는 단계, 프리-클러스터에 맵핑되는 물리 주소들이 순차적으로 인터리빙 가능하도록 물리 주소들을 변경하는 단계, 그리고 프리-클러스터에 할당되는 데이터를 인터리빙 방식으로 쓰는 단계를 포함한다.
본 발명의 실시예들에 따라, 프리-클러스터 정보는, 파일 시스템 내 삭제된 파일에 할당되었던 클러스터들을 해제하고, 해제된 클러스터에 맵핑되는 논리 주소들로 설정될 수 있고, S-ATA 프로토콜에서 제공되는 트림 명령(Trim Command)을 이용하여 호스트가 비휘발성 데이터 저장 장치에게 알려줄 수 있다.
상기 목적을 달성하기 위하여, 본 발명의 더욱 다른 면에 따른 비휘발성 데이터 저장 장치의 쓰기 방법은, 호스트의 파일 시스템 내 메타 정보를 분석하는 단계, 메타 정보로부터 사용중이지 않은 클러스터들의 논리 주소들에 맵핑되는 비휘발성 데이터 저장 장치의 물리 주소들이 순차적으로 인터리빙 가능하도록 물리 주소들을 변경하는 단계, 그리고 사용중이지 않은 클러스터에 할당되는 데이터를 인 터리빙 방식으로 쓰는 단계를 포함한다.
본 발명의 실시예들에 따라, 메타 정보는 윈도우즈 파일 시스템(NTFS) 내 비트맵 정보($Bitmap)일 수 있다.
상기 다른 목적을 달성하기 위하여, 본 발명의 일면에 따른 비휘발성 데이터 저장 장치는, 호스트와의 통신을 수행하는 호스트 인터페이스 계층, 사용자 패턴을 수집하여 로그들을 생성하는 패턴 수집 계층, 호스트의 유휴 시간마다 로그들을 기반으로 연속적으로 읽히는 논리 주소들을 추출하는 패턴 분석 계층, 논리 주소들을 비휘발성 데이터 저장 장치의 물리 주소와 맵핑하되 연속적으로 읽히는 논리 주소들의 데이터들을 인터리빙이 가능한 단위로 읽히도록 재배치하는 맵핑 계층, 그리고 재배치된 데이터들을 독출하는 비휘발성 메모리를 포함한다.
상기 다른 목적을 달성하기 위하여, 본 발명의 다른 면에 따른 비휘발성 데이터 저장 장치는, 호스트와의 통신을 수행하고 호스트의 파일 시스템 내 메타 정보에서 파일을 구성하는 클러스터 정보를 추출하는 호스트 인터페이스 계층, 추출된 클러스터에 맵핑되는 비휘발성 데이터 저장 장치의 물리 주소의 상태를 점검하고 추출된 클러스터에 쓰여지된 데이터들을 인터리빙이 가능한 단위로 읽히도록 재배치하는 맵핑 계층, 그리고 재배치된 데이터들을 독출하는 비휘발성 메모리를 포함한다.
상기 다른 목적을 달성하기 위하여, 본 발명의 또다른 면에 따른 비휘발성 데이터 저장 장치는, 호스트와의 통신을 수행하고 호스트의 파일 시스템 내 프리-클러스터 정보를 읽어내는 호스트 인터페이스 계층, 프리-클러스터의 논리 주소에 맵핑되는 비휘발성 데이터 저장 장치의 물리 주소의 상태를 점검하고 프리-클러스터에 맵핑되는 물리 주소들이 순차적으로 인터리빙 가능하도록 물리 주소들을 변경하는 맵핑 계층, 그리고 프리-클러스터에 할당되는 데이터를 인터리빙 방식으로 기록하는 비휘발성 메모리를 포함한다.
상기 다른 목적을 달성하기 위하여, 본 발명의 또다른 면에 따른 비휘발성 데이터 저장 장치는, 호스트와의 통신을 수행하고 호스트의 윈도우즈 파일 시스템(NTFS) 내 비트맵 정보($Bitmap)를 분석하는 호스트 인터페이스 계층, 비트맵 정보로부터 사용중이지 않은 클러스터의 논리 주소에 맵핑되는 비휘발성 데이터 저장 장치의 물리 주소가 순차적으로 인터리빙 가능하도록 물리 주소들을 변경하는 맵핑 계층, 그리고 사용중이지 않은 클러스터에 할당되는 데이터를 인터리빙 방식으로 기록하는 비휘발성 메모리를 포함한다.
상술한 본 발명에 의하면, 파일 시스템의 단편화에 의해 비휘발성 데이터 저장 장치에 임의 쓰기 성능으로 저장되었다 하더라도, 독출시 순차 읽기 성능으로 읽음에 따라, 읽기 동작 속도를 향상시킬 수 있다. 또한, 임의 쓰기 성격의 데이터를 인터리빙 단위로 쓰기 동작을 수행함에 따라, 순차 쓰기 성능을 보이게 되어 쓰기 동작 속도를 향상시킬 수 있으며, 차후 읽기 동작시에도 순차 읽기 성능을 보일 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 예시적인 실시예를 설명하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1a 내지 도 1c는 단편화 과정의 파일 시스템을 설명하는 도면이다. 도 1a는 파일 시스템을 초기화한 직후, 즉 일반적으로 포맷팅(formatting)이라는 동작이 수행된 직후에 제1 내지 제5 파일들(File1 ~ File5)을 기록하는 경우를 보여준다. 제1 내지 제5 파일들(File1 ~ File5) 각각은 파일 크기에 대응되는 복수개의 클러스터들(1~21)에 연속적으로 할당되어져 있고, 미사용된 다수개의 프리 클러스터들(free clusters)이 존재한다. 이 후, 제2 파일(File2)과 제4 파일(File4)를 삭제하는 경우, 도 1b에 도시된 바와 같이, 제2 및 제4 파일들(File2, File4)이 할당되있던 클러스터들(8~9, 13~16)이 프리 클러스터들이 된다. 이 후, 제6 파일(File6)을 기록하는 경우, 도 1c에 도시된 바와 같이, 프리 클러스터들(8~9, 13~16, 22~25)에 불연속적으로 할당되는 것을 볼 수 있다.
도 1c의 파일 시스템에 기록된 제6 파일(File6)은, 제6 파일(File6)이 할당된 클러스터들(8~9, 13~16, 22~25)의 논리 주소들에 맵핑되는 비휘발성 데이터 저장 장치의 물리 블록 어드레스(Physical Block Address: PBA, 이하 " 물리 주소"라 칭한다)에 해당하는 비휘발성 메모리에 저장된다. 도 2는 제6 파일(File6)이 비휘발성 메모리에 임의 쓰기 성능으로 저장된 상태를 설명하는 도면이다.
도 2를 참조하면, 비휘발성 데이터 저장 장치의 대용량화에 따라 4-채널/4-웨이 방식의 비휘발성 메모리(100)를 포함한다. 비휘발성 메모리(100)는, 비트 위스(bit width) 확장 방식과 다중 채널 방식의 아키텍쳐로 대용량화를 구현한다. 비트 위스 확장 방식은, 하나의 채널(예컨대, Channel A)에 예컨대, 4개의 비휘발성 메모리 칩들(Chip0, Chip4, Chip8, Chip12)을 연결하여 동시에 데이터를 전송하는 방법으로서, 1-채널/4-웨이(Way0 ~ Way3) 아키텍쳐를 구성한다. 연결된 비휘발성 메모리 칩들(Chip0, Chip4, Chip8, Chip12)은 동일한 로우 어드레스에 대하여 동시에 읽기/쓰기 동작을 수행한다. 다중 채널 방식은 1-채널/4-웨이 아키텍쳐의 확장으로서, 4-채널/4-웨이 아키텍쳐를 구성한다.
하나의 웨이는 인터리빙(interleaving) 방식의 기본 단위가 되며, 제1 내지 제4 웨이들(Way0 ~ Way3)은 비휘발성 메모리(100)의 제1 내지 제4 뱅크(Bank0 ~ Bank3)로 구현된다. 설명의 편의를 위하여, 제1 뱅크(Bank0)는, 예시적으로 4개의 비휘발성 메모리 칩들(Chip0, Chip1, Chip2, Chip3)로 구성되는 데, 비휘발성 메모리 칩(Chip0, Chip1, Chip2, Chip3) 각각은 다수개의 메모리 블록들(MB0~MB3)로 구성된다. 비휘발성 메모리 칩(Chip0, Chip1, Chip2, Chip3) 내 메모리 블록(MB0~MB3) 각각은 제1 뱅크(Bank0)의 동일한 칼럼 어드레스에 대하여 동시에 읽기/쓰기 동작을 수행한다. 제1 내지 제4 뱅크(Bank0 ~ Bank3) 내 메모리 블록(MB0~MB3) 각각은, 도 1a 내지 도 1c에서 설명된 클러스터에 맵핑된다. 실제적으로는 제1 내지 제4 뱅크(Bank0 ~ Bank3)의 메모리 블록(MB0~MB3) 내 페이지가 클러스터에 맵핑된다.
도 2에서, 제6 파일(File6)이 비휘발성 메모리(100)의 제1 뱅크(Bank0)와 제3 뱅크(Bank2)에 임의적으로 저장되어 있다. 제1 뱅크(Bank0)의 제1 및 제2 메모리 블록(MB0, MB1)과 제3 뱅크(Bank2)의 제1 내지 제3 메모리 블록(MB0 ~MB2)은, 파일 시스템 내 제6 파일(File6)이 할당된 일부 클러스터들(8~9, 13~15)의 논리 주소에 맵핑되는 비휘발성 데이터 저장 장치의 물리 주소에 해당된다. 이렇게 임의 쓰기 성능으로 저장된 제6 파일(File6)을 독출하는 경우, 제6 파일(File6)은 일반적으로 임의 읽기 성능으로 읽힌다. 임의 읽기 성능은, 순차 읽기 성능에 비해, 제1 및 제3 뱅크들(Bank0, Bank2)의 억세스에 대하여 대기(wait) 신호들을 필요로 하기 때문에, 동작 속도가 느린 단점이 있다. 비록 제6 파일(File6)이 임의 쓰기 성능으로 저장되었다 하더라도, 독출시 순차 읽기 성능으로 제6 파일(File6)을 읽을 수 있다면, 읽기 동작 속도를 향상시킬 수 있을 것이다.
도 3은 본 발명의 비휘발성 데이터 저장 장치를 포함하는 시스템을 설명하는 도면이다. 도 3을 참조하면, 시스템(10)은 호스트(20)와 비휘발성 데이터 저장 장치(30)를 포함한다. 호스트(20)는, 수행될 작업을 예측하고 지시된 작업을 수행시키는 작업 관리부(22)와 비휘발성 데이터 저장 장치(30)로의 읽기/쓰기/삭제를 수행하는 메모리 관리부(24), 그리고 파일 시스템(26)을 포함한다. 파일 시스템(26)은, 파일 엔트리(file entry)가 지시하는 파일의 내용이 수정되거나 추가 또는 삭제될 때마다, 도 1a 내지 도 1c에서 설명한 바와 같이, 파일 시스템 내 클러스터들의 내용도 변경된다.
비휘발성 데이터 저장 장치(30)는, 호스트(20)와 통신을 수행하기 위한 호스 트 인터페이스 계층(32), 사용자 패턴을 수집하는 패턴 수집 계층(34), 사용자 패턴을 분석하는 패턴 분석 계층(36), 논리 주소와 물리 주소를 맵핑하는 맵핑 계층(38), 비휘발성 메모리(100)를 구동하기 위한 디바이스 드라이버 계층(40), 그리고 비휘발성 메모리(100)를 포함한다. 비휘발성 메모리(100)는 다양한 N-채널/x-웨이 아키텍쳐로 구현될 수 있는데, 중복 설명을 피하기 위하여, 도 2에 도시된 바와 같이, 4-채널/4-웨이 아키텍쳐로 구현된 경우에 대하여 설명된다.
도 4는 본 발명의 제1 실시예에 따른 비휘발성 데이터 저장 장치의 읽기 성능 향상 방법을 설명하는 플로우챠트이다. 도 3과 연계하여 도 4를 참조하면, 패턴 수집 계층(34)의 패턴 수집기를 이용하여, 패턴을 수집하여 로그들(logs)을 작성한다(302). 생성된 로그는, 도 5에 도시된 바와 같이, [시작 논리 주소, 섹터 카운터] 형태를 갖는다.
이 후, 패턴 감지 계층(34)의 패턴 감지기를 이용하여, 생성된 로그들에서 연속적으로 읽히는 논리 주소를 추출한다(406). 도 5의 로그들에서, [200, 32], [300, 128], [800, 128]의 논리 주소들이 연속적으로 읽히는 것을 관찰할 수 있다. 연속적으로 읽히는 논리 주소들이 관찰되면, 패턴 감지기는 이 논리 주소들이 맵핑되어 있는 물리 주소의 상태를 맵핑 계층(38)을 통하여 점검한다(408). 만약 연속적으로 읽히는 논리 주소들이 인터리빙 되지 않도록 물리적으로 맵핑되어 있다면, 논리 주소의 데이터들을 물리적으로 인터리빙이 가능한 단위로 읽히도록 데이터를 재배치한다(410). 논리 주소 200, 300, 800이, 예를 들어, 도 2의 비휘발성 메모리(100) 내 제3 뱅크(Bank2)에 모두 배치되어 있다면, 인터리빙이 가능하도록 호스트 인터페이스 계층(32)이 측정한 유휴 시간(idle time)에 제1 뱅크(Bank0), 제2 뱅크(Bank1), 제3 뱅크(Bank2)에 데이터를 재배치시킨다. 유휴 시간이란 호스트(20)로부터 입출력 정보가 없는 일정 시간을 의미한다.
도 2에서 설명된 바와 같이, 비휘발성 메모리(100)는 각 뱅크별로 독립된 입출력 동작을 수행할 수 있다. 즉, 제1 뱅크(Bank0)에 읽기 동작을 수행하는 동시에 다른 뱅크들(Bank1, Bank2, Bank3)도 별도의 읽기 동작을 수행할 수 있다. 논리 주소 200, 300, 800에 해당하는 데이터들이 제1 뱅크(Bank0), 제2 뱅크(Bank1), 제3 뱅크(Bank2)에 재배치되면, 각 뱅크별로 동시에 읽기 동작을 수행함으로써 재배치된 데이터들을 인터리빙 방식으로 읽는다(412).
이에 따라, 파일 시스템의 단편화에 의해, 도 2에 도시된 바와 같이, 제6 파일(File6)이 임의 쓰기 성능으로 저장되었다 하더라도, 도 4의 독출 방법으로 제6 파일(File6)이 할당된 일부 클러스터들(8~9, 13~15)의 논리 주소에 해당하는 데이터들을 도 6에 도시된 바와 같이 제1 내지 제4 뱅크(Bank0, Bank1, Bank2, Bank3)에 순차적으로 재배치하여 독출시 순차 읽기 성능으로 제6 파일(File6)을 읽을 수 있다.
도 7은 본 발명의 제2 실시예에 따른 비휘발성 데이터 저장 장치의 읽기 성능 향상 방법을 설명하는 플로우챠트이다. 도 3과 연계하여 도 7을 참조하면, 호스트 인터페이스 계층(32)이 호스트로부터 수신된 마지막 SATA 명령으로부터 얼마의 시간이 경과하였는 지를 측정하여, 측정 결과 유휴 시간이라고 판정이 되면, 호스트 인터페이스 계층(32)은 호스트(20) 내 파일 시스템(26)의 메타 정보를 분석한 다(702). 파일 시스템(26)의 메타 정보에는 파일 이름, 파일을 구성하는 클러스트 리스트, 파일을 마지막으로 억세스한 날짜, 파일의 속성 등 파일에 대한 전반적인 사항들이 기록되어 있다. 파일 시스템(26)에는 NTFS, FAT16, FAT32, EXT2 등 다양한 종류가 있는 데, 본 실시예에서는 FAT 파일 시스템의 메타 정보를 이용하여 파일을 구성하는 클러스터 정보를 추출한다(704).
예컨대, 제1 디렉토리(dir1)에 존재하는 제1 파일(file1.txt)을 구성하는 클러스터들의 구성과 클러스터 정보를 추출하기 위하여, 도 8에 도시된 FAT 파일 시스템을 참조한다. 도 8을 참조하면, 부트 섹터는 파일 시스템의 종류, FAT 크기, 전체 섹터 수, 시작 클러스터의 위치 및 클러스터 당 섹터 수 등의 정보를 가진다. 파일 할당 테이블(File Allocation Table: FAT)은 파일을 할당하는 클러스터의 위치를 알아내어 클러스터들의 연결 상태를 저장하는 블록이며, 루트 디렉토리는 모든 파일이나 디렉토리의 가장 상위 디렉토리이다.
우선, 부트 섹터의 바이오스 파라미터 블록(BIOS Parameter Block: BPB) 정보를 이용하여 루트 디렉토리의 클러스터 번호를 얻는다. 루트 디렉토리의 클러스터 번호에 맵핑되는 논리 주소의 데이터를 비휘발성 메모리 저장 장치로부터 읽어 온다. 읽어 온 데이터를 FAT 파일 시스템의 디렉토리 엔트리 포맷에 맞게 분석해 보면, 제1 디렉토리(dir1)의 클러스터 번호가 90번이고, 클러스터 번호 90번에 맵핑되는 논리 주소의 데이터를 비휘발성 메모리 저장 장치로부터 읽어보면 제1 디렉토리(dir1)에 속한 제1 파일(file1.txt)이 클러스터 번호 200번에 기록되어있다. 클러스터 200번을 읽은 다음, FAT 테이블의 200번 인덱스를 참조하면 클러스터 201 번을 참조할 것을 지시한다. 클러스터 201번을 읽은 다음, 다시 FAT 테이블의 201번 인덱스를 참조하면 EOF(End Of File)이므로, 파일 시스템 내 메타 정보 읽기 동작을 마무리한다.
도 8의 FAT 파일 시스템의 경우, 디렉토리 엔트리와 FAT 테이블에서 추출된 제1 파일(file1.txt)의 클러스터 번호 200, 201에 맵핑되는 물리 주소의 상태를 맵핑 계층(38)을 통하여 점검한다(706). 만약 클러스터 번호 200, 201에 맵핑되는 물리 주소들이 인터리빙 되지 않도록 맵핑되어 있다면, 클러스터 번호 200, 201에 기록된 데이터들을 인터리빙이 가능한 단위로 읽히도록 데이터를 재배치한다(708).즉, 클러스터 번호 200, 201에 기록된 데이터가, 예를 들어, 도 2의 비휘발성 메모리(100) 내 제1 뱅크(Bank0)에 모두 배치되어 있다면, 유휴 시간에 제1 뱅크(Bank0), 제2 뱅크(Bank1)에 데이터를 재배치시킨다. 이에 따라, 제1 파일(file1.txt)을 읽을 때, 클러스터 200번의 읽기 동작을 수행함과 동시에 클러스터 201번의 읽기 동작을 수행하기 때문에, 순차 읽기 성능으로 제1 파일(file1.txt)을 읽을 수 있다.
도 9는 본 발명의 제3 실시예에 따른 비휘발성 데이터 저장 장치의 쓰기 성능 향상 방법을 설명하는 플로우챠트이다. 도 3과 연계하여 도 9를 참조하면, 비휘발성 데이터 저장 장치(30)는 호스트(20)의 파일 시스템(26) 내 프리-클러스터 정보를 읽는다(902). 호스트(20)는 파일 시스템(26) 내 임의의 파일들이 삭제되었을 때, 삭제된 파일들에 할당되었던 클러스터들을 해제하고, 트림 명령(Trim Command)을 이용하여 해제된 클러스터에 맵핑되는 논리 주소들을 비휘발성 데이터 저장 장 치(30)에 알려줄 수 있다. 트림 명령는 S-ATA 프로토콜에서 제공되는 명령이다.
예컨대, 호스트(20)가 파일 시스템 내 [200, 8], [300, 8], [800, 8] 구간이 프리- 클러스터들임을 비휘발성 데이터 저장 장치(30)에게 알려주면, 논리 주소 200, 300, 800이 맵핑되어 있는 물리 주소의 상태를 맵핑 계층(38)을 통하여 점검한다(904). 예를 들어, 논리 주소 200, 300, 800이 도 2의 비휘발성 메모리(100) 내 제1 뱅크(Bank0)에 모두 맵핑되어 있다면, 논리 주소 200, 300, 800은 제1 뱅크(Bank0), 제2 뱅크(Bank1), 제3 뱅크(Bank2)에 순차적으로 맵핑되도록 맵핑 정보를 변경한다(906). 즉, 프리 클러스터의 논리 주소 200, 300, 800에 맵핑되는 비휘발성 메모리(100)의 물리 주소를 순차적으로 인터리빙 가능하도록 재배치한다. 이 후, 파일 시스템(26)은 프리-클러스터 리스트의 처음부터 순차적으로 클러스터들을 할당하기 때문에, 프리-클러스터에 할당되는 데이터는 인터리빙 방식으로 쓰여진다(908).
이에 따라, 파일 시스템의 단편화에 의해, 도 2에 도시된 바와 같이, 제6 파일(File6)이 임의 쓰기 성격의 데이터라 하더라도, 도 9의 쓰기 방법을 수행하여, 도 1b의 프리-클러스터들(8~9, 13~15)의 논리 주소에 맵핑되는 물리 주소를 제1 내지 제4 뱅크(Bank0, Bank1, Bank2, Bank3)에 순차적으로 재배치함에 따라, 프리-클러스터들(8~9, 13~15)에 할당되는 제6 파일(File6)은 도 6에 도시된 바와 같이 쓰기 동작시 순차 쓰기 성능으로 쓰여진다.
도 10은 본 발명의 제4 실시예에 따른 비휘발성 데이터 저장 장치의 쓰기 성능 향상 방법을 설명하는 플로우챠트이다. 도 3과 연계하여 도 10을 참조하면, 대 용량 파일 시스템인 윈도우즈 파일 시스템(NTFS) 내 비트맵($Bitmap)을 분석한다(1002). 윈도우즈 파일 시스템에서는 파일 시스템을 생성할 때 저장 장치 공간을 아이노드, 디렉토리 엔트리, 데이터 블록의 영역들로 구분하고, 이들 각 객체에 비트맵 영역을 할당한다. 즉, 비트맵 영역에는 어떠한 클러스터들이 사용중이고 사용중이지 않은지를 나타낸다. 사용중이지 않은 클러스터에 맵핑 주소들이 순차적으로 인터리빙 가능하도록 맵핑 정보를 변경하여 재배치한다(1004). 이에 따라, 사용중이지 않은 클러스터들에 할당되는 데이터는 인터리빙 방식으로 쓰여진다(1006).
본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1a 내지 도 1c는 단편화 과정의 파일 시스템을 설명하는 도면이다.
도 2는 도 1c의 제6 파일이 비휘발성 메모리에 임의 쓰기 성능으로 저장된 상태를 설명하는 도면이다.
도 3은 본 발명의 비휘발성 데이터 저장 장치를 포함하는 시스템을 설명하는 도면이다.
도 4는 본 발명의 제1 실시예에 따른 비휘발성 데이터 저장 장치의 읽기 성능 향상 방법을 설명하는 플로우챠트이다.
도 5는 도 4에서 생성된 로그의 형태를 보여주는 도면이다.
도 6은 도 1c의 제6 파일이 순차적으로 재배치하여 독출시 순차 읽기 성능으로 읽히는 상태를 설명하는 도면이다.
도 7은 본 발명의 제2 실시예에 따른 비휘발성 데이터 저장 장치의 읽기 성능 향상 방법을 설명하는 플로우챠트이다.
도 8은 FAT 파일 시스템 구성을 설명하는 도면이다.
도 9는 본 발명의 제3 실시예에 따른 비휘발성 데이터 저장 장치의 쓰기 성능 향상 방법을 설명하는 플로우챠트이다.
도 10은 본 발명의 제4 실시예에 따른 비휘발성 데이터 저장 장치의 쓰기 성능 향상 방법을 설명하는 플로우챠트이다.

Claims (14)

  1. 호스트와 연결되는 비휘발성 데이터 저장 장치의 읽기 방법에 있어서,
    파일들의 특정 시퀀스에 저장된 데이터의 패턴들을 수집하여 로그들을 생성하는 단계;
    상기 로그들을 기반으로 상기 특정 시퀀스 내 각 파일의 논리 주소들 중에서 상기 호스트로부터 연속적으로 읽혀질 논리 주소들을 추출하는 단계;
    상기 연속적으로 읽혀질 논리 주소들이 맵핑되는 상기 비휘발성 데이터 저장 장치의 물리 주소들의 상태를 점검하는 단계;
    상기 비휘발성 데이터 저장 장치의 상기 물리 주소들의 상태들이 비-인터리빙한 읽기 순서인 경우, 상기 호스트의 유휴 시간에 상기 특정 시퀀스 내 상기 파일들의 데이터가 연속적으로 인터리빙 방식으로 읽히도록 상기 물리 주소들을 재배치하는 단계; 및
    상기 인터리빙한 방식으로 상기 특정 시퀀스 내 상기 파일들의 데이터를 읽는 단계를 구비하는 비휘발성 데이터 저장 장치의 읽기 방법.
  2. 삭제
  3. 호스트와 연결되는 비휘발성 데이터 저장 장치의 읽기 방법에 있어서,
    상기 호스트의 유휴 시간에 상기 호스트의 파일 시스템 내 메타 정보를 분석하는 단계;
    상기 메타 정보에서 파일을 구성하는 클러스터들에 대한 클러스터 정보를 추출하는 단계;
    상기 추출된 클러스터들에 맵핑되는 상기 비휘발성 데이터 저장 장치의 현재 물리 주소들의 상태를 점검하는 단계;
    상기 비휘발성 데이터 저장 장치의 상기 현재 물리 주소들의 상태들이 비-인터리빙한 읽기 순서인 것으로 판단되는 경우, 상기 파일의 상기 클러스터들에 이전에 저장된 데이터가 인터리빙한 방식으로 읽히도록 상기 추출된 클러스터 정보를 다른 물리적인 어드레스들에 맵핑시키는 단계; 및
    상기 파일의 상기 클러스터들에 이전에 저장된 데이터를 상기 인터리빙한 방식으로 읽는 단계를 구비하는 비휘발성 데이터 저장 장치의 읽기 방법.
  4. 제3항에 있어서, 상기 메타 정보는
    상기 파일 시스템 내 디렉토리 엔트리와 FAT(File Allocation Table)에서 추출되는 것을 특징으로 하는 비휘발성 데이터 저장 장치의 읽기 방법.
  5. 삭제
  6. 호스트와 연결되는 비휘발성 데이터 저장 장치의 쓰기 방법에 있어서,
    상기 호스트의 파일 시스템 내 삭제된 파일에 응답하여, 상기 호스트의 상기 파일 시스템 내 프리-클러스터들에 대한 정보를 읽는 단계;
    상기 프리-클러스터들의 논리 주소들에 맵핑되는 상기 비휘발성 데이터 저장 장치의 현재 물리 주소들의 상태를 점검하는 단계;
    상기 비휘발성 데이터 저장 장치의 상기 현재 물리 주소들의 상태들이 비-인터리빙한 읽기 순서인 것으로 판단되는 경우, 상기 프리-클러스터들이 연속적으로 인터리브되도록 상기 논리 주소들을 다른 물리적인 어드레스들에 맵핑시키는 단계; 및
    상기 인터리빙한 방식으로 상기 프리-클러스터들에 할당된 데이터를 쓰는 단계를 구비하는 비휘발성 데이터 저장 장치의 쓰기 방법.
  7. 제6항에 있어서, 상기 프리-클러스터들에 대한 정보는
    상기 파일 시스템 내 삭제된 파일에 할당되었던 해제된 클러스터들에 맵핑된 논리 주소들인 것을 특징으로 하는 비휘발성 데이터 저장 장치의 쓰기 방법.
  8. 제6항에 있어서, 상기 프리-클러스터들에 대한 정보는
    S-ATA (Serial-ATA) 프로토콜에서 제공되는 트림 명령(Trim Command)을 이용하여 상기 호스트가 상기 비휘발성 데이터 저장 장치에게 알려주는 것을 특징으로 하는 비휘발성 데이터 저장 장치의 쓰기 방법.
  9. 호스트와 연결되는 비휘발성 데이터 저장 장치의 쓰기 방법에 있어서,
    상기 호스트의 유휴 시간에 상기 비휘발성 데이터 저장 장치의 메모리 영역을 아이노드, 디렉토리 엔트리 및 데이터 블록으로 구분하도록 하는 상기 호스트의 파일 시스템 내 메타 정보를 분석하는 단계;
    상기 메타 정보로부터 사용중이지 않은 클러스터들의 논리 주소들에 맵핑된 상기 비휘발성 데이터 저장 장치의 물리 주소들이 연속적으로 인터리브되도록하는 단계; 및
    상기 사용중이지 않은 클러스터들에 할당되는 데이터를 인터리빙 방식으로 쓰는 단계를 구비하는 비휘발성 데이터 저장 장치의 쓰기 방법.
  10. 제9항에 있어서,
    상기 비휘발성 데이터 저장 장치는 읽기 동작에서 동시에 독출되는 다수개의 메모리 뱅크들을 포함하고,
    동일한 메모리 뱅크 내 인접한 물리 주소들에 해당하는 상기 사용중이지 않은 클러스터들이 다른 메모리 뱅크들에 상응하는 다른 물리 주소들에 대응시키는 것을 특징으로 하는 비휘발성 데이터 저장 장치의 쓰기 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
KR1020090041750A 2009-05-13 2009-05-13 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법 KR101606453B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090041750A KR101606453B1 (ko) 2009-05-13 2009-05-13 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법
US12/772,381 US8825942B2 (en) 2009-05-13 2010-05-03 Apparatus and method of rearranging data and nonvolatile data storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090041750A KR101606453B1 (ko) 2009-05-13 2009-05-13 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법

Publications (2)

Publication Number Publication Date
KR20100122720A KR20100122720A (ko) 2010-11-23
KR101606453B1 true KR101606453B1 (ko) 2016-04-01

Family

ID=43069443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090041750A KR101606453B1 (ko) 2009-05-13 2009-05-13 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법

Country Status (2)

Country Link
US (1) US8825942B2 (ko)
KR (1) KR101606453B1 (ko)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
WO2012083308A2 (en) * 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
CN102591815B (zh) * 2011-12-27 2015-07-29 Tcl集团股份有限公司 一种用环形数据缓冲区读写批量数据的方法及装置
CN104170364B (zh) * 2012-01-10 2017-03-15 京瓷办公信息系统株式会社 图像形成装置
US9547459B1 (en) * 2013-06-27 2017-01-17 EMC IP Holding Company LLC Techniques for data relocation based on access patterns
US9304910B2 (en) * 2013-12-10 2016-04-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Slice formatting and interleaving for interleaved sectors
US9653184B2 (en) * 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
KR102535700B1 (ko) * 2016-02-01 2023-05-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20180016442A (ko) * 2016-02-04 2018-02-14 주식회사 알티스트 연속적 쓰기 동작을 수행하기 위한 방법 및 시스템
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
KR20190090635A (ko) * 2018-01-25 2019-08-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10481823B2 (en) * 2018-02-21 2019-11-19 International Business Machines Corporation Data storage system performing data relocation based on temporal proximity of accesses
JP7020989B2 (ja) * 2018-04-23 2022-02-16 株式会社メガチップス 不揮発性記憶装置、メモリ制御装置、及びメモリ制御方法
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
US10936196B2 (en) 2018-06-15 2021-03-02 EMC IP Holding Company LLC Data convolution for geographically diverse storage
US11023130B2 (en) 2018-06-15 2021-06-01 EMC IP Holding Company LLC Deleting data in a geographically diverse storage construct
US11436203B2 (en) 2018-11-02 2022-09-06 EMC IP Holding Company LLC Scaling out geographically diverse storage
US10901635B2 (en) 2018-12-04 2021-01-26 EMC IP Holding Company LLC Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns
US11119683B2 (en) 2018-12-20 2021-09-14 EMC IP Holding Company LLC Logical compaction of a degraded chunk in a geographically diverse data storage system
US10931777B2 (en) 2018-12-20 2021-02-23 EMC IP Holding Company LLC Network efficient geographically diverse data storage system employing degraded chunks
US10892782B2 (en) 2018-12-21 2021-01-12 EMC IP Holding Company LLC Flexible system and method for combining erasure-coded protection sets
US11023331B2 (en) 2019-01-04 2021-06-01 EMC IP Holding Company LLC Fast recovery of data in a geographically distributed storage environment
US10942827B2 (en) 2019-01-22 2021-03-09 EMC IP Holding Company LLC Replication of data in a geographically distributed storage environment
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
US10942825B2 (en) 2019-01-29 2021-03-09 EMC IP Holding Company LLC Mitigating real node failure in a mapped redundant array of independent nodes
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10944826B2 (en) 2019-04-03 2021-03-09 EMC IP Holding Company LLC Selective instantiation of a storage service for a mapped redundant array of independent nodes
US11029865B2 (en) 2019-04-03 2021-06-08 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes
US11119686B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Preservation of data during scaling of a geographically diverse data storage system
US11113146B2 (en) 2019-04-30 2021-09-07 EMC IP Holding Company LLC Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system
US11121727B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Adaptive data storing for data storage systems employing erasure coding
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
US11209996B2 (en) 2019-07-15 2021-12-28 EMC IP Holding Company LLC Mapped cluster stretching for increasing workload in a data storage system
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
US11449399B2 (en) 2019-07-30 2022-09-20 EMC IP Holding Company LLC Mitigating real node failure of a doubly mapped redundant array of independent nodes
US11726869B2 (en) 2019-08-20 2023-08-15 Micron Technology, Inc. Performing error control operation on memory component for garbage collection
US11281578B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Garbage collection in a memory sub-system during a low battery state
US11282567B2 (en) * 2019-08-20 2022-03-22 Micron Technology, Inc. Sequential SLC read optimization
US11281392B2 (en) 2019-08-28 2022-03-22 Micron Technology, Inc. Garbage collection in a memory component using an adjusted parameter
US11228322B2 (en) 2019-09-13 2022-01-18 EMC IP Holding Company LLC Rebalancing in a geographically diverse storage system employing erasure coding
US11449248B2 (en) 2019-09-26 2022-09-20 EMC IP Holding Company LLC Mapped redundant array of independent data storage regions
US11119690B2 (en) 2019-10-31 2021-09-14 EMC IP Holding Company LLC Consolidation of protection sets in a geographically diverse data storage environment
US11435910B2 (en) 2019-10-31 2022-09-06 EMC IP Holding Company LLC Heterogeneous mapped redundant array of independent nodes for data storage
US11288139B2 (en) 2019-10-31 2022-03-29 EMC IP Holding Company LLC Two-step recovery employing erasure coding in a geographically diverse data storage system
KR20210055875A (ko) 2019-11-08 2021-05-18 삼성전자주식회사 저장 장치와 저장 장치 시스템 그리고 그 동작 방법
US11435957B2 (en) 2019-11-27 2022-09-06 EMC IP Holding Company LLC Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes
US11144220B2 (en) 2019-12-24 2021-10-12 EMC IP Holding Company LLC Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes
US11231860B2 (en) 2020-01-17 2022-01-25 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage with high performance
US11507308B2 (en) 2020-03-30 2022-11-22 EMC IP Holding Company LLC Disk access event control for mapped nodes supported by a real cluster storage system
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk storage system
US11693983B2 (en) 2020-10-28 2023-07-04 EMC IP Holding Company LLC Data protection via commutative erasure coding in a geographically diverse data storage system
US11847141B2 (en) 2021-01-19 2023-12-19 EMC IP Holding Company LLC Mapped redundant array of independent nodes employing mapped reliability groups for data storage
US11625174B2 (en) 2021-01-20 2023-04-11 EMC IP Holding Company LLC Parity allocation for a virtual redundant array of independent disks
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system
US11449234B1 (en) 2021-05-28 2022-09-20 EMC IP Holding Company LLC Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes
CN115061640B (zh) * 2022-08-11 2022-12-02 深圳云豹智能有限公司 一种容错分布存储系统、方法、电子设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040076044A1 (en) * 2002-07-09 2004-04-22 Farshid Nowshadi Method and system for improving access latency of multiple bank devices
US20050144361A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive mode switching of flash memory address mapping based on host usage characteristics

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664187A (en) * 1994-10-26 1997-09-02 Hewlett-Packard Company Method and system for selecting data for migration in a hierarchic data storage system using frequency distribution tables
US6898667B2 (en) * 2002-05-23 2005-05-24 Hewlett-Packard Development Company, L.P. Managing data in a multi-level raid storage array
US7447836B2 (en) * 2006-02-14 2008-11-04 Software Site Applications, Limited Liability Company Disk drive storage defragmentation system
US8214343B2 (en) * 2008-03-19 2012-07-03 Microsoft Corporation Purposing persistent data through hardware metadata tagging
US8041891B2 (en) * 2008-07-14 2011-10-18 Lsi Corporation Method and system for performing RAID level migration
US8090905B2 (en) * 2009-03-27 2012-01-03 Sandforce, Inc. System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040076044A1 (en) * 2002-07-09 2004-04-22 Farshid Nowshadi Method and system for improving access latency of multiple bank devices
US20050144361A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive mode switching of flash memory address mapping based on host usage characteristics

Also Published As

Publication number Publication date
US20100293348A1 (en) 2010-11-18
US8825942B2 (en) 2014-09-02
KR20100122720A (ko) 2010-11-23

Similar Documents

Publication Publication Date Title
KR101606453B1 (ko) 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법
US8607016B2 (en) FAT analysis for optimized sequential cluster management
KR101528714B1 (ko) 메모리 유닛 동작 방법 및 메모리 제어기
US9368130B2 (en) Data storage system, method of writing to storage in the data storage system, hard disk and method of forming the hard disk
EP2254053B1 (en) FAT-analysis for optimized sequential cluster management
KR101404083B1 (ko) 반도체 디스크 및 그것의 동작 방법
KR100952135B1 (ko) 순차적 기록만을 사용하는 플래시 관리 시스템
JP3597945B2 (ja) 直接アクセス記憶装置のデータ圧縮用組込みディレクトリ情報の保持方法及びディレクトリ・レコードを含むシステム
KR101447188B1 (ko) 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
US9639275B2 (en) Managing data within a storage device based on file system metadata
RU2319227C2 (ru) Способ запоминания с двойным протоколированием и носитель данных для него
US7945587B2 (en) Random allocation of media storage units
US10956071B2 (en) Container key value store for data storage devices
CN102915759A (zh) 净化存储装置的方法和设备
CN111949222B (zh) 一种全闪磁盘阵列中垃圾回收中数据迁移的方法
Zhou et al. {SMRSTORE}: A Storage Engine for Cloud Object Storage on {HM-SMR} Drives
US9235352B2 (en) Datastore for non-overwriting storage devices
US20100169555A1 (en) Method of writing data into flash memory based on file system
CN114625318A (zh) 应用于固态硬盘的数据写入方法、装置、设备
Chen et al. Facilitating the efficiency of secure file data and metadata deletion on smr-based ext4 file system
KR20110103142A (ko) 비휘발성 메모리 장치의 데이터 접근 방법 및 이를 수행하는 프로그램을 기록한 기록매체
CN102023925A (zh) 固态硬盘及其使用方法
KR101655508B1 (ko) 메모리 장치 및 그 동작 방법
Suk et al. Performance analysis of nand flash-based ssd for designing a hybrid filesystem
CN112148645A (zh) 去分配命令处理方法及其存储设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20190228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200228

Year of fee payment: 5