KR20140099737A - 존-기반 조각모음 방법 및 그것을 이용한 유저 장치 - Google Patents

존-기반 조각모음 방법 및 그것을 이용한 유저 장치 Download PDF

Info

Publication number
KR20140099737A
KR20140099737A KR1020130012520A KR20130012520A KR20140099737A KR 20140099737 A KR20140099737 A KR 20140099737A KR 1020130012520 A KR1020130012520 A KR 1020130012520A KR 20130012520 A KR20130012520 A KR 20130012520A KR 20140099737 A KR20140099737 A KR 20140099737A
Authority
KR
South Korea
Prior art keywords
file
defragmentation
zone
fragments
pieces
Prior art date
Application number
KR1020130012520A
Other languages
English (en)
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 KR1020130012520A priority Critical patent/KR20140099737A/ko
Priority to US14/152,333 priority patent/US9355027B2/en
Publication of KR20140099737A publication Critical patent/KR20140099737A/ko

Links

Images

Classifications

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

Abstract

호스트와 비휘발성 저장 장치를 포함하는 유저 장치의 조각모음 방법은 상기 비휘발성 저장 장치에 저장된 제 1 파일의 조각들이 동일한 논리 어드레스 존에 존재하는 지의 여부를 판별하고, 상기 제 1 파일의 조각들이 다른 논리 어드레스 존들에 존재할 때 상기 제 1 파일의 조각들에 대한 조각모음을 실행하는 것을 포함하며, 상기 제 1 파일의 조각들에 대한 조각모음시, 상기 제 1 파일의 조각들은 상기 다른 논리 어드레스 존들 중 적어도 하나의 존에 대응하는 논리 어드레스 공간으로 옮겨진다.

Description

존-기반 조각모음 방법 및 그것을 이용한 유저 장치{ZONE-BASED DEFRAGMENTATION METHOD AND USER DEVICE USING THE SAME}
본 발명은 조각모음을 지원하는 유저 장치 및 그것의 존-기반 조각모음 방법에 관한 것이다.
플래시 메모리(flash memory)는 하드 디스크와 달리 겹쳐 쓰기(overwrite)를 지원하지 않기 때문에, 다시 쓰기위해서는 소거 동작이 선행되어야 한다. 플래시 메모리의 소거 동작은 메모리 블록 단위로 수행되고, 소거 시간이 오래 걸린다. 이러한 플래시 메모리의 특성으로 인해, 하드 디스크용 파일 시스템을 플래시 메모리에 그대로 적용하는 데 어려움이 있다. 이를 해결하기 위한 방안으로 하드 디스크용 파일 시스템과 플래시 메모리 사이의 미들웨어인 플래시 변환 계층(FTL)이 사용되고 있다. FTL은 플래시 메모리를 기존의 하드 디스크처럼 자유롭게 읽고 쓸 수 있도록 한다.
조각 모음(defragmentation 또는 defrag)은 하드 디스크 위의 파일 시스템의 조각난 양을 줄이는 작업을 말한다. 조각 모음은 물리적으로는 하드 디스크 상의 조각난 파일들을 연속적으로 붙여서 동작 속도를 빠르게 하는 것을 목적으로 하고 한다. 주기적인 조각 모음을 통해 디스크의 성능을 최대한 유지시키고, 단편화로 인한 과도한 오버헤드 문제를 막을 수 있다.
본 발명의 목적은 존을 기반으로 조작모음을 수행하는 존-기반 조각모음 기법을 제공하는 것이다.
본 발명의 일 특징은 호스트와 비휘발성 저장 장치를 포함하는 유저 장치의 조각모음 방법을 제공하며, 조각모음 방법은 상기 비휘발성 저장 장치에 저장된 제 1 파일의 조각들이 동일한 논리 어드레스 존에 존재하는 지의 여부를 판별하고, 상기 제 1 파일의 조각들이 다른 논리 어드레스 존들에 존재할 때 상기 제 1 파일의 조각들에 대한 조각모음을 실행하는 것을 포함하며, 상기 제 1 파일의 조각들에 대한 조각모음시, 상기 제 1 파일의 조각들은 상기 다른 논리 어드레스 존들 중 적어도 하나의 존에 대응하는 논리 어드레스 공간으로 옮겨진다.
예시적인 실시예에 있어서, 조각모음 방법은 상기 제 1 파일의 조각들이 동일한 논리 어드레스 존에 존재할 때 상기 제 1 파일의 조각들에 대한 조각모음을 스킵하는 것을 더 포함한다.
예시적인 실시예에 있어서, 상기 제 1 파일의 조각들에 대한 조각모음은 상기 제 1 파일의 조각들 각각에 대한 읽기 및 쓰기 명령들을 상기 호스트에서 상기 비휘발성 저장 장치로 전송함으로써 행해진다.
예시적인 실시예에 있어서, 상기 제 1 파일의 조각들에 대한 조각모음은 일련의 조각모음 명령들을 상기 호스트에서 상기 비휘발성 저장 장치로 전송함으로써 행해진다.
예시적인 실시예에 있어서, 상기 각 조각모음 명령은 읽기/쓰기 명령을 이용하며, 상기 읽기/쓰기 명령은 조각모음 및 조각모음의 종료를 나타내는 정보를 포함한다.
예시적인 실시예에 있어서, 상기 비휘발성 저장 장치는 상기 일련의 조각모음 명령들을 상기 논리 어드레스 존의 단위로 분류하고, 분류 결과를 기준으로 상기 제 1 파일의 조각들을 논리 어드레스 존들에 대응하는 논리 어드레스 공간들로 옮긴다.
예시적인 실시예에 있어서, 상기 비휘발성 저장 장치는 상기 제 1 파일의 조각들이 조각모음되는 동안 생긴 무효한 데이터를 저장하는 물리 블록을 상기 호스트의 추가 정보없이 무효 블록으로 처리한다.
예시적인 실시예에 있어서, 조각모음 방법은 상기 제 1 파일의 조각들에 대한 조각모음이 완료된 후 상기 조각모음된 파일의 조각들에 대한 재정렬이 요구되는 지의 여부를 판별하는 것을 더 포함한다.
예시적인 실시예에 있어서, 상기 조각모음된 파일의 조각들에 대한 재정렬이 요구되는 경우, 상기 호스트는 재정렬될 조각들에 대한 소스 어드레스 및 목적지 어드레스를 포함하는 LBA 명령을 상기 플래시 저장 장치로 전송하며, 상기 비휘발성 저장 장치는 상기 조각모음된 파일의 조각들의 물리적인 이동없이 상기 조각모음된 파일의 맵핑 정보의 변경을 통해 상기 조각모음된 파일의 조각들에 대한 재정렬을 수행한다.
본 발명의 다른 특징은 조각모음 프로그램을 포함하는 호스트와; 그리고 상기 호스트의 요청에 응답하여 저장 매체를 제어하는 메모리 제어기를 포함하는 유저 장치를 제공한다. 상기 호스트에 의해서 관리되는 논리 어드레스 공간은 복수의 논리 어드레스 존들로 구분되며, 상기 조각모음 프로그램의 조각모음은 논리 어드레스 존을 기준으로 행해지며, 상기 조각모음 프로그램은 동일한 논리 어드레스 존에 존재하는 조각난 파일에 대한 조각모음을 생략하고 다른 논리 어드레스 존들에 존재하는 조각난 파일에 대한 조각모음을 수행한다. 상기 조각모음 프로그램은 조각모음이 완료된 후 조각모음된 파일의 조각들에 대한 재정렬이 요구되는 지의 여부를 판별하며, 상기 조각모음된 파일의 조각들에 대한 재정렬이 요구되는 경우, 상기 조각모음 프로그램은 재정렬될 조각들에 대한 소스 어드레스 및 목적지 어드레스를 포함하는 LBA 명령을 상기 메모리 제어기로 전송하며, 상기 메모리 제어기는 상기 조각모음된 파일의 조각들의 물리적인 이동없이 상기 조각모음된 파일의 맵핑 정보의 변경을 통해 상기 조각모음된 파일의 조각들에 대한 재정렬을 수행한다.
본 발명의 예시적인 실시예들에 의하면, 논리 주소 공간의 분할 관리를 통해 조각모음을 보다 빠르고 효율적으로 처리하는 것이 가능하다. 또한, 조각모음 명령/LBA 명령을 통해 조각모음과 관련된 연산을 효율적으로 처리하는 것이 가능하다.
도 1은 본 발명에 따른 유저 장치를 개략적으로 보여주는 블록도이다.
도 2는 파일 시스템에 의해서 관리되는 논리 어드레스 공간을 보여주는 도면이다.
도 3은 본 발명의 일 실시예에 따른 파일 조각모음을 개략적으로 보여주는 도면이다.
도 4는 본 발명에 따른 유저 장치의 파일 조각모음을 보여주는 흐름도이다.
도 5a 내지도 도 5h는 도 4에서 설명된 파일 조각모음시 파일 조각들의 흐름을 보여주는 도면들이다.
도 6a 내지 도 6c는 본 발명에 따른 파일 조각모음의 수행시 논리 어드레스 공간과 물리 어드레스 공간 사이의 관계를 개략적으로 보여주는 도면들이다.
도 7은 본 발명의 다른 실시예에 따른 유저 장치의 조각모음을 설명하기 위한 도면이다.
도 8은 도 7에서 설명된 조각모음 명령을 이용한 유저 장치의 조각모음을 보여주는 흐름도이다.
9a 내지 도 9g는 도 7에서 설명된 조각모음 명령을 이용한 유저 장치의 조각모음시 물리 블록들의 변화를 보여주는 도면들이다.
도 10은 본 발명에 따른 데이터 재정렬을 위한 LAB 명령을 보여주는 도면이다.
도 11a 내지 도 11c는 본 발명에 따른 유저 장치에서 LBA 명령을 이용한 데이터 재정렬 동작을 설명하기 위한 도면들이다.
도 12는 본 발명의 다른 실시예에 따른 유저 장치의 조각모음을 보여주는 흐름도이다.
도 13은 본 발명의 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 14는 본 발명의 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 15는 도 14에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이다.
도 16은 도 14에 도시된 반도체 드라이브를 이용한 스트리지 서버를 개략적으로 보여주는 블록도이다.
도 17은 본 발명의 실시예에 따른 반도체 드라이브가 적용되는 시스템을 개략적으로 보여주는 도면이다.
도 18은 본 발명의 실시예에 따른 메모리 카드(memory card)를 개략적으로 보여주는 블록도이다.
도 19는 본 발명의 실시예에 따른 디지털 스틸 카메라를 개략적으로 보여주는 블록도이다.
도 20은 도 18의 메모리 카드가 사용되는 다양한 응용 분야들을 보여주는 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.
도 1은 본 발명에 따른 유저 장치를 개략적으로 보여주는 블록도이다.
도 1을 참조하면, 유저 장치(1000)는 호스트(100), 메모리 제어기(200), 그리고 저장 매체(300)를 포함할 것이다. 호스트(100)는 유저 장치(1000)의 전반적인 동작을 제어하도록 구성될 것이다. 호스트(100)는 응용 프로그램(110), 파일 시스템(120) 등을 포함하는 호스트 메모리(130)와 처리 유니트(140)를 포함할 것이다. 예를 들면, 호스트 메모리(130)는 호스트(100)의 메인 메모리일 것이다. 응용 프로그램(110)은, 예를 들면, 파일 조각들(file fragments)을 모으기 위한 조각모음(defragmentation)을 지원할 것이다. 이후 상세히 설명되는 바와 같이, 응용 프로그램(110)은 존(예를 들면, 연속적으로 할당된 논리 주소들의 집합을 나타냄)을 기반으로 파일 조각들을 모을 것이다. 파일 시스템(120)은 저장 매체(300)에 저장된 파일들을 쉽게 관리하기 위한 파일 관리 규약이라 할 수 있다. 파일 시스템(120)은 하드 디스크 관점의 섹터나 플래시 메모리 관점의 블록을 기준으로 파일을 관리할 수 있다. 처리 유니트(140)는 호스트(100)의 전반적인 동작을 제어하도록 구성될 것이다.
예시적인 실시예에 있어서, 파일 시스템(120)은 FAT(File Allocation Table), NTFS(New Technology File System), HPFS(High Performance File System), UFS(Unix File System), Ext2(Second Extended File System), Ext3(Third
Extended File System) 등과 같이 플로피 디스크나 하드 디스크에서 주로 사용하는 것뿐만 아니라, LFS, JFFS, YAFFS, LogFS와 같은 플래시 메모리 전용 파일 시스템도 포함될 수 있다.
계속해서 도 1을 참조하면, 메모리 제어기(200)는 호스트(100)의 요청(예를 들면, 쓰기 또는 읽기 요청)에 응답하여 저장 매체(300)의 읽기, 쓰기, 그리고 소거 동작들을 제어할 것이다. 메모리 제어기(200)는 플래시 변환 계층(FTL)(210)을 포함할 것이다. 플래시 변환 계층(210)은 호스트(100)에서 제공되는 논리 어드레스를 저장 매체(300)의 물리적인 어드레스로 변환할 것이다. 예를 들면, 플래시 변환 계층(210)은 논리 어드레스와 물리 어드레스 사이의 맵핑 관계를 관리하는 데 사용될 것이다. 논리 어드레스들과 물리 어드레스들 사이의 맵핑 관계는 맵핑 테이블을 이용하여 관리될 것이다. 플래시 변환 계층(210)은 상위 계층의 응용 프로그램(110) 또는 파일 시스템(120)에서 볼 때 , 실제 저장 매체(300)에서 수행되는 읽기, 프로그램, 소거 동작들 대신에 하드 디스크 장치에서와 같은 읽기 및 쓰기가 수행되는 것처럼 보이도록 에뮬레이트(emulate)하는 역할을 한다. 플래시 변환 계층(210)은, 예를 들면, 저장 매체(300)에 저장되며, 파워-업시 에스램에 로드될 것이다.
저장 매체(300)는 유저 데이터(예를 들면, 워드 파일, 동영상 파일, 사진 파일 등), 파일 시스템(120)에 의해서 관리되는 메타 정보(예를 들면, 파일 이름, 파일 크기, 파일 위치, 등을 포함함), 그리고 메모리 제어기(200)에 의해서 관리되는 메타 정보(예를 들면, 맵핑 테이블, 프로그램-소거 사이클, 등)를 저장하는 데 사용될 것이다. 하지만, 본 발명이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 저장 매체(300)는, 예를 들면, 하나 또는 그 보다 많은 불 휘발성 메모리 장치들로 구성될 것이다. 저장 매체(300)는 하나 또는 그 보다 많은 낸드 플래시 메모리 장치들로 구성될 것이다. 하지만, 본 발명이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 저장 매체(300)는 노어 플래시 메모리 장치, PRAM, RRAM, FRAM, MRAM, 등과 같은 불 휘발성 메모리 장치들로 구성될 수 있다. 저장 매쳬(300)의 데이터 저장 공간은 복수의 메모리 블록들(BLK0~BLK(i-1))로 구성될 것이다. 각 메모리 블록은 복수의 페이지들(또는, 복수의 섹터들)로 구성될 것이다.
예시적인 실시예에 있어서, 메모리 제어기(200)와 저장 매체(300)는 플래시 메모리 기반 저장 장치(예를 들면, 메모리 카드)를 구성하며, 유저 장치(1000)의 메인 보드에 직접 장착될 수 있다. 또는, 메모리 제어기(200)와 저장 매체(300)는 플래시 메모리 기반 저장 장치(예를 들면, 메모리 카드)를 구성하며, 유저 장치(1000)의 메인 보드에 장착되거나 그것으로부터 제거 가능하도록 구현될 수 있다.
도 2는 파일 시스템에 의해서 관리되는 논리 어드레스 공간을 보여주는 도면이다.
본 발명에 따른 유저 장치에 있어서, 파일 시스템(120)에 의해서 관리되는 논리 어드레스 공간은 복수의 존들로 구분될 것이다. 하나의 존은 연속적인 논리 어드레스들에 의해서 정의될 수 있다. 존의 크기는 특정 크기로 한정되지 않을 것이다. 존의 크기는 가변 가능하다.
파일 시스템(120)에 의해서 관리되는 파일들의 조각들은 응용 프로그램(110)을 통해 조각모음될 것이다. 예를 들면, 특정 조건이 만족될 때, 응용 프로그램(110)은 조각모음을 수행할 것이다. 여기서, 특정 조건은 유저 장치(1000)의 사용자에 의해서 조각모음이 요청되는 경우를 포함할 것이다. 하지만, 특정 조건이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 유저 장치(1000)가 유휴 상태에 있을 때, 응용 프로그램(110)은 조각난 파일들의 양을 기준으로 조각모음을 수행할 것인 지의 여부를 판별하고, 판별 결과에 따라 조각모음을 수행할 것이다.
본 발명의 경우, 조각난 파일들이 동일한 존에 존재할 때, 동일한 존에 속한 조각난 파일들에 대한 조각모음은 행해지지 않을 것이다. 조각난 파일의 조각들이 다른 존들에 존재할 때, 하나의 존으로 조각난 파일의 조각들을 모음으로써 조각난 파일에 대한 조각모음은 완료될 것이다. 즉, 조각난 파일의 조각들이 동일한 존에 배열되고 조각난 파일의 조각들의 배열이 논리 어드레스들을 기준으로 불연속적이더라도, 조각난 파일에 대한 조각모음은 완료될 것이다. 하나의 파일에 대한 조각모음이 완료되면, 다른 파일에 대한 조각모음이 행해질 것이다. 다른 파일에 대한 조각모음 역시 하나의 존으로 조각난 파일의 조각들을 모음으로써 완료될 것이다. 추가적으로, 필요에 따라 불연속적인 파일 조각들의 배열은 논리 어드레스들을 기준으로 연속적으로 재배열될 것이다. 이는 이후 상세히 설명될 것이다.
예시적인 실시예에 있어서, 응용 프로그램(110)에 의해서 행해지는 조각모음은 읽기 명령 및 쓰기 명령을 이용하여 행해질 것이다. 예를 들면, 파일이 3개의 조각들로 조각났다고 가정하자. 이러한 경우, 제 1 파일 조각에 대응하는 논리 어드레스에 대해서 연속적으로 제 2 및 제 3 파일 조각들을 배열함으로써 파일 조각모음이 완료될 수 있다. 제 2 및 제 3 파일 조각들은 읽기 및 쓰기 명령들을 반복적으로 사용함으로써 제 1 파일 조각에 대응하는 논리 어드레스에 대해서 연속적으로 배치될 것이다.
예시적인 실시예에 있어서, 호스트(100)는 논리 어드레스 공간의 존 정보를 다양한 방식들을 이용하여 확보할 수 있다. 예를 들면, 존 정보가 미리 응용 프로그램(110)에 설정될 수 있다. 또는, 호스트(100)의 요청에 따라 존 정보가 메모리 제어기(200)로부터 제공될 수 있다. 또는, 반복적인 읽기 요청을 이용하여 메모리 제어기(200)에 의해서 관리되는 존 정보를 확보할 수 있다. 하지만, 존 정보가 호스트(100)에 제공되는 방식이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.
도 3은 본 발명의 일 실시예에 따른 파일 조각모음을 개략적으로 보여주는 도면이다. 도 3에 있어서, 파일 시스템(120)에 의해서 관리되는 논리 어드레스 공간이 4개의 존들(101~104)로 구분된다고 가정하자. 또한, 파일(A)의 조각들이 제 1 및 제 2 존들(101, 102)에 대응하는 논리 어드레스 공간들에 저장되고 파일(B)의 조각들이 제 4 존(104)에 대응하는 논리 어드레스 공간에 저장된다고 가정하자.
조각모음이 수행되면, 응용 프로그램(110)은 조각난 파일(A)의 조각들이 다른 존들(101, 102)에 존재하기 때문에 조각난 파일(A)의 조각들을 다른 존들(101, 102) 중 어느 하나의 존(예를 들면, 101)에 모을 것이다. 이에 반해서, 응용 프로그램(110)은 조각난 파일(B)의 조각들이 동일한 존(104)에 존재하기 때문에 조각난 파일(B)에 대한 조각모음을 수행하지 않을 것이다. 필요에 따라, 응용 프로그램(110)은 조각난 파일(B)의 조각들이 연속적으로 배치되도록 조각난 파일(B)의 조각들을 재배열할 것이다.
도 4는 본 발명에 따른 유저 장치의 파일 조각모음을 보여주는 흐름도이다. 도 5a 내지도 도 5h는 도 4에서 설명된 파일 조각모음시 파일 조각들의 흐름을 보여주는 도면들이다. 이하, 본 발명에 따른 유저 장치의 파일 조각모음이 참조 도면들에 의거하여 상세히 설명될 것이다.
본 발명의 파일 조각모음에 따르면, 조각난 파일의 조각들은 동일한 존으로 모아질 것이다. 이때, 조각들의 순차적인 배치는 고려되지 않을 것이다. 필요에 따라 파일 조각들의 순차적인 배치는 추후에 행해질 수 있다. 설명의 편의상, 논리 어드레스 공간이 5개의 존들(Z0~Z4) (도 5a 참조)로 구성되며, 논리 어드레스 공간에 4개의 파일들(A, B, C, D)이 저장된다고 가정하자. 예를 들면, 도 5a에 도시된 바와 같이, 파일(A)의 조각들(A0~A3)은 제 1 및 제 4 존들(Z0, Z3)의 논리 어드레스 영역들에 저장되고, 파일(B)의 조각들(B0~B3)은 제 1 및 제 5 존들(Z0, Z4)의 논리 어드레스 영역들에 저장되며, 파일(C)의 조각들(C0~C10)은 제 2 및 제 3 존들(Z1, Z2)의 논리 어드레스 영역들에 저장되며, 파일(D)의 조각들(D0~D4)은 제 4 및 제 5 존들(Z3, Z4)의 논리 어드레스 영역들에 저장될 것이다. 이러한 주소 체계는 호스트(100)에 의해서 보여지는 것이다.
파일 조각모음의 특정 조건이 만족되면, 파일 조각모음을 위한 응용 프로그램(110)이 실행될 것이다. 파일 조각모음의 특정 조건은, 예를 들면, 유저 장치(1000)의 사용자의 요청을 포함할 것이다. 일단 파일 조각모음을 위한 응용 프로그램(110)이 실행되면, S110 단계에서, 응용 프로그램(110)은 조각모음될 파일을 선택할 것이다. 편의상, 논리 어드레스 공간에서 조각난 파일들 중 가장 앞선 논리 어드레스를 갖는 조각난 파일이 선택된다고 가정하자. 하지만, 조각난 파일의 선택이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 조각난 파일의 선택은 논리 어드레스 값과 관계없이 파일 크기, 조각난 파일이 저장된 존들의 수, 등을 기준으로 행해질 수 있다. 예시적인 실시예에 있어서, S110 단계에서, 응용 프로그램(110)은 파일(A)을 선택할 것이다. 앞서 설명된 바와 같이, 파일(A)의 조각들(A0~A3)은 제 1 및 제 4 존들(Z0, Z3)의 논리 어드레스 영역들에 저장되어 있다.
S120 단계에서, 응용 프로그램(110)은 선택된 파일(A)이 모여질 존에 여분의 공간이 존재하는 지의 여부를 판별할 것이다. 선택된 파일(A)이 모여질 존에 여분의 공간(또는, 사용 가능한 공간)이 존재하지 않는 경우, 절차는 S130 단계로 진행할 것이다. S130 단계에서, 조각모음될 파일이 저장된 존들 중 하나에 여분의 공간이 확보될 것이다. 도 5b을 참조하면, 제 1 존(Z0)으로 옮겨질 파일(A)의 조각들(A2, A3)이 2개이기 때문에, 2개의 조각들이 저장될 여분의 공간이 제 1 존(Z0)에서 확보되어야 한다. 이러한 경우, 조각모음될 파일(A)이 저장될 존(Z0)의 여분의 공간은 제 1 존(Z0)에 있는 파일(B)의 조각(B0)과 파일(C)의 조각(C0)을 제 3 존(Z2)의 자유 공간으로 옮김으로써 확보될 것이다. 일단 여분의 공간이 확보되면, 절차는 S140 단계로 진행할 것이다.
예시적인 실시예에 있어서, 제 1 존(Z0)에 있는 파일(B)의 조각(B0)과 파일(C)의 조각(C0)은 읽기 명령과 쓰기 명령을 통해 제 3 존(Z2)의 자유 공간으로 옮겨질 것이다. 예를 들면, 호스트(100)는 파일 조각(B0)의 논리 어드레스에 대응하는 저장 매체(300)의 물리 공간으로부터 파일 조각(B0)이 읽혀지도록 메모리 제어기(200)에 읽기 동작을 요청할 것이다. 그 다음에, 호스트(100)는 읽혀진 파일 조각(B0)이 제 3 존(Z2)의 논리 어드레스에 대응하는 저장 매체(300)의 물리 공간에 저장되도록 메모리 제어기(200)에 쓰기 동작을 요청할 것이다. 마찬가지로, 호스트(100)는 파일 조각(C0)의 논리 어드레스에 대응하는 저장 매체(300)의 물리 공간으로부터 파일 조각(C0)이 읽혀지도록 메모리 제어기(200)에 읽기 동작을 요청할 것이다. 그 다음에, 호스트(100)는 읽혀진 파일 조각(C0)이 제 3 존(Z2)의 논리 어드레스에 대응하는 저장 매체(300)의 물리 공간에 저장되도록 메모리 제어기(200)에 쓰기 동작을 요청할 것이다. 따라서, 읽기 및 쓰기 명령들을 통해 제 1 존(Z0)에 있는 파일(B)의 조각(B0)과 파일(C)의 조각(C0)이 제 3 존(Z2)의 자유 공간으로 옮겨질 것이다. 앞서 설명된 쓰기 동작들에서, 논리 어드레스와 물리 어드레스 사이의 맵핑 관계가 변경될 것이다. 맵핑 관계의 변경시 무효한 물리 공간이 생길 것이다. 이러한 무효한 물리 공간은 추후 행해지는 가비지 콜렉션을 통해 자유 공간으로 할당될 것이다.
S120 단계로 돌아가면, 선택된 파일(A)이 모여질 존에 여분의 공간(또는, 사용 가능한 공간)이 존재하는 경우, 절차는 S140 단계로 진행할 것이다. S140 단계에서, 응용 프로그램(110)은 다른 존(Z3)에 존재하는 파일(A)의 조각들(A2, A3)을 제 1 존(Z0)으로 옮길 것이다. 다른 존(Z3)에 존재하는 파일(A)의 조각들(A2, A3)은 앞서 설명된 읽기 및 쓰기 명령들을 이용하여 행해질 것이다. 마찬가지로, 쓰기 동작들에서, 논리 어드레스와 물리 어드레스 사이의 맵핑 관계가 변경될 것이다.
S150 단계에서, 응용 프로그램(110)은 선택된 파일에 대한 조각모음이 추가적으로 요구되는 지의 여부를 판별할 것이다. 제 1 및 제 3 존들(Z0, Z2)에 저장된 파일(A)의 조각들(A0~A3)이 제 1 존(Z0)에 모아졌기 때문에, 선택된 파일에 대한 조각모음은 추가적으로 요구되지 않을 것이다. 이러한 경우, 절차는 S160 단계로 진행할 것이다. 만약 또 다른 존에 파일(A)의 조각들이 존재하면, 절차는 S110 단계로 진행할 것이다. 앞서 설명된 단계들(S110~S150)은 선택된 파일(A)의 조각들이 동일한 존으로 옮겨질 때까지 반복될 것이다.
S160 단계에서, 선택된 파일(A)은 조각모음이 완료된 파일로서 표기될 것이다. 이는 응용 프로그램(110)에 의해서 행해질 것이다.
S170 단계에서, 응용 프로그램(110)은 조각모음될 파일이 존재하는 지의 여부를 판별할 것이다. 만약 조각모음될 파일이 존재하지 않으면, 절차는 종료될 것이다. 이에 반해서, 만약 조각모음될 파일이 존재하면, 절차는 S110 단계로 진행할 것이다.
이하, 나머지 파일들(B, C, D)에 대한 조각모음이 개략적으로 설명될 것이다. 나머지 파일들(B, C, D)에 대한 조각모음 역시 앞서 설명된 단계들(S110~S170)을 통해 행해질 것이다.
먼저, 파일(C)에 대한 조각모음이 행해질 것이다.
파일(A)에 대한 조각모음이 종료되었기 때문에, 제 1 존(Z0)에 있는 파일 조각들(C1, C2)은 이동되어야 한다. 도 5c에 도시된 바와 같이, 파일 조각들(C6, C7, C8)은 파일 조각들(C0, C1, C2)이 옮겨질 공간을 확보하기 위해서 옮겨질 것이다. 그 다음에, 도 5d에 도시된 바와 같이, 제 3 존(Z2)에 있는 파일 조각(C0)이 제 2 존(Z1)으로 옮겨지고, 제 1 존(Z0)에 있는 파일 조각들(C1, C2)이 제 2 존(Z1)으로 옮겨질 것이다. 파일 조각들(C6~C10)을 모으기 위해서, 도 5e에 도시된 바와 같이, 제 4 존(Z3)에 있는 파일 조각(C8)이 제 3 존(Z2)으로 옮겨질 것이다. 상술한 동작들을 통해 파일(C)에 대한 조각모음이 완료될 것이다.
다음에, 파일(B)에 대한 조각모음이 행해질 것이다.
제 3 존(Z2)에 있는 파일 조각(B0)을 제 5 존(Z4)으로 옮기기 위해서 여분의 공간이 확보되어야 한다. 이를 위해서, 도 5f에 도시된 바와 같이, 파일(D)의 조각(D6)이 제 3 존(Z2)의 자유 공간으로 옮겨질 것이다. 즉, 제 3 존(Z2)에 있는 파일 조각(B0)을 제 5 존(Z4)으로 옮기기 위해서 여분의 공간이 확보될 것이다. 그 다음에, 제 3 존(Z2)에 있는 파일 조각(B0)이 제 5 존(Z4)으로 옮겨질 것이다. 이러한 동작들을 통해 파일(B)에 대한 조각모음이 완료될 것이다.
마지막으로, 파일(D)에 대한 조각모음이 행해질 것이다.
파일 조각들(D0~D5)을 동일한 존(Z4)에 모으기 위해서, 도 5g에 도시된 바와 같이, 파일 조각(D4)는 파일 조각(D6)의 위치로 옮겨지고 파일 조각(D6)는 파일 조각(D4)의 위치로 옮겨질 것이다. 그 다음에, 도 5h에 도시된 바와 같이, 파일 조각(D5)이 제 4 존(Z3)으로 옮겨질 것이다. 이러한 동작들을 통해 파일(D)에 대한 조각모음이 완료될 것이다.
예시적인 실시예에 있어서, 조각모음을 통해 옮겨지는 파일 조각들이 저장된 물리 블록의 저장 공간은 필요에 따라 호스트(100)로부터 제공되는 삭제 정보를 통해 무효화될 수 있다. 이러한 무효화는 추후 수행될 가비지 콜렉션에 유용할 것이다. 여기서, 삭제 정보는 쓰기 명령에 이어서 호스트(100)에서 메모리 제어기(200)로 전송될 수 있다. 하지만, 삭제 정보의 전송 시점이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.
도 6a 내지 도 6c는 본 발명에 따른 파일 조각모음의 수행시 논리 어드레스 공간과 물리 어드레스 공간 사이의 관계를 개략적으로 보여주는 도면들이다. 설명의 편의상, 하나의 파일(A)에 대한 조각모음이 실행될 때 물리 어드레스 공간의 변화가 설명될 것이다.
도 6a에 도시된 바와 같이, 파일(A)의 조각들(A0~A10)이 4개의 존들(Z0~Z3)에 저장되어 있다고 가정하자. 호스트(100)의 관점에서 파일(A)와 논리 어드레스 사이의 관계가 보여지고, 메모리 제어기(200)의 관점에서 논리 어드레스와 물리 어드레스 사이의 관계가 보여질 것이다.
파일(A)에 대한 조각모음이 실행되면, 먼저, 제 2 존(Z1)에 있는 파일 조각들(A3, A4)이 제 1 존(Z0)으로 옮겨질 것이다. 파일 조각들(A3, A4)의 이동 이전에 제 1 존(Z0)에 여분의 공간이 존재하는 지의 여부가 판별될 것이다. 도 6a의 경우, 제 1 존(Z0)에 여분의 공간이 존재하기 때문에, 제 2 존(Z1)에 있는 파일 조각들(A3, A4)이 제 1 존(Z0)으로 옮겨질 것이다. 이러한 경우, 도 6b에 도시된 바와 같이, 파일 조각들(A3, A4)이 저장될 저장 매체(300)의 자유 블록이 새롭게 할당될 것이다. 파일 조각들(A3, A4)의 논리 어드레스들과 물리 어드레스들 사이의 관계가 갱신될 것이다. 제 2 존(Z1)에 저장되었던 파일 조각들(A3, A4)이 제 1 존(Z0)으로 옮겨졌기 때문에, 파일 조각들(A3, A4)이 저장되었던 물리 블록에 무효한 데이터가 저장될 것이다. 파일 조각들(A3, A4)에 대응하는 물리 블록의 무효한 데이터는 맵핑 테이블을 통해 관리될 것이다.
그 다음에, 제 4 존(Z3)에 있는 파일 조각(A5)이 제 1 존(Z0)으로 옮겨질 것이다. 파일 조각(A5)의 이동 이전에 제 1 존(Z0)에 여분의 공간이 존재하는 지의 여부가 판별될 것이다. 도 6c에 도시된 바와 같이, 제 1 존(Z0)에 여분의 공간이 존재하기 때문에, 제 4 존(Z3)에 있는 파일 조각(A5)이 제 1 존(Z0)으로 옮겨질 것이다. 파일 조각(A5)은 이전에 옮겨진 파일 조각들(A3, A4)이 저장된 물리 블록에 저장될 것이다. 제 4 존(Z3)에 저장되었던 파일 조각(A5)이 제 1 존(Z0)으로 옮겨졌기 때문에, 파일 조각(A5)이 저장되었던 물리 블록에 무효한 데이터가 저장될 것이다. 파일 조각(A5)에 대응하는 물리 블록의 무효한 데이터는 맵핑 테이블을 통해 관리될 것이다.
제 2 존(Z1)에 있는 파일 조각(A8)과 제 4 존(Z3)에 있는 파일 조각들(A6, A7)이 제 3 존(Z2)으로 옮겨질 것이다. 앞서 설명과 마찬가지로, 파일 조각들(A6, A7)의 이동 이전에 제 3 존(Z2)에 여분의 공간이 존재하는 지의 여부가 판별될 것이다. 제 3 존(Z2)에 여분의 공간이 존재하기 때문에, 도 6d에 도시된 바와 같이, 파일 조각들(A6, A7)이 제 3 존(Z2)으로 옮겨질 것이다. 이러한 경우, 파일 조각들(A6, A7)이 저장될 저장 매체(300)의 자유 블록이 새롭게 할당될 것이다. 제 4 존(Z3)에 저장되었던 파일 조각들(A6, A7)이 제 3 존(Z2)으로 옮겨졌기 때문에, 파일 조각들(A6, A7)이 저장되었던 물리 블록에 무효한 데이터가 저장될 것이다. 파일 조각들(A6, A7)에 대응하는 물리 블록의 무효한 데이터는 맵핑 테이블을 통해 관리될 것이다.
이후, 제 2 존(Z1)에 있는 파일 조각(A8)이 제 3 존(Z2)으로 옮겨질 것이다. 파일 조각(A8)의 이동 이전에 제 3 존(Z2)에 여분의 공간이 존재하는 지의 여부가 판별될 것이다. 도 6d에 도시된 바와 같이, 제 3 존(Z2)에 여분의 공간이 존재하기 때문에, 제 2 존(Z1)에 있는 파일 조각(A8)가 제 3 존(Z2)으로 옮겨질 것이다. 제 2 존(Z1)에 저장되었던 파일 조각(A8)이 제 3 존(Z2)으로 옮겨졌기 때문에, 파일 조각(A8)이 저장되었던 물리 블록에 무효한 데이터가 저장될 것이다. 파일 조각(A8)에 대응하는 물리 블록의 무효한 데이터는 맵핑 테이블을 통해 관리될 것이다.
상술한 실시예들은 존을 기반으로 파일들에 대한 조각모음을 실행할 때 각 파일 조각이 읽기 명령과 쓰기 명령을 통해 선택된 존으로 옮겨진다는 가정 하에서 설명되었다. 하지만, 본 발명이 이에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 조각모음될 파일의 조각들에 대한 읽기 및 쓰기 동작들은 일련의 명령들을 메모리 제어기(200)로 한번에 전송함으로써 수행될 수 있다. 이는 이하 상세히 설명될 것이다.
도 7은 본 발명의 다른 실시예에 따른 유저 장치의 조각모음을 설명하기 위한 도면이다.
도 7을 참조하면, 호스트(100) (예를 들면, 응용 프로그램(110))은 저장 매체(300)를 제어하기 위한 메모리 제어기(200)로 조각모음 명령(defrag command)을 전송할 것이다. 조각모음 명령은 오퍼랜드 필드(F1), 시작 주소 필드(F2), 접근 크기 필드(F3), 그리고 조각모음/종료 필드(F4)를 포함할 것이다. 오퍼랜드 필드(F1)는 쓰기 동작 또는 읽기 동작을 나타내는 정보를 포함하고, 시작 주소 필드(F2)는 쓰기/읽기 동작의 시작 주소 정보를 포함하며, 접근 크기 필드(F3)는 쓰여질/읽혀질 데이터의 크기를 나타내는 정보를 포함하며, 조각모음/종료 필드(F4)는 조각모음 또는 조각모음의 끝을 나타내는 정보를 포함할 것이다.
예시적인 실시예에 있어서, 조각모음 명령은 읽기/쓰기 명령을 이용하며, 입출력 패킷의 예비 영역(reserved area) 또는 컨택스트 아이드(context id)에 조각모음/종료가 표기될 것이다.
호스트(100)에서 메모리 제어기(200)로 전송되는 조각모음 명령에 있어서, 예를 들면, "R"은 읽기 동작을 나타내고, "W"은 쓰기 동작을 나타내며, "D"는 조각모음을 나타내고, "E"는 조각모음의 끝을 나타낼 것이다. 조각모음/종료 필드(F4)에 "E"가 포함되는 경우, 일련의 조각모음 명령들에 의해서 지정된 읽기 및 쓰기 동작들이 순차적으로 수행될 것이다. 이는 이하 상세히 설명될 것이다.
도 8은 도 7에서 설명된 조각모음 명령을 이용한 유저 장치의 조각모음을 보여주는 흐름도이다. 도 9a 내지 도 9g는 도 7에서 설명된 조각모음 명령을 이용한 유저 장치의 조각모음시 물리 블록들의 변화를 보여주는 도면들이다.
먼저, 도 9a를 참조하면, 파일(A)의 조각들(A0~A10)이 4개의 존들(Z0~Z3)에 저장되어 있다고 가정하자. 호스트(100)의 관점에서 파일(A)와 논리 어드레스 사이의 관계가 보여지고, 메모리 제어기(200)의 관점에서 논리 어드레스와 물리 어드레스 사이의 관계가 보여질 것이다. 파일(A)에 대한 조각모음은 호스트(100)에서 메모리 제어기(200)로 일련의 조각모음 명령들을 연속적으로 전송함으로써 행해질 것이다. 편의상, 도 7에 도시된 일련의 조각모음 명령들이 호스트(100)에서 메모리 제어기(200)로 연속적으로 전송된다고 가정하자. 이러한 경우, 소스 어드레스로서 논리 어드레스들(6, 7, 19, 20, 21, 11)에 대응하는 파일 조각들(A3, A4, A5, A6, A7)이 목적지 어드레스로서 논리 어드레스들(0, 1, 2, 14, 15, 16)에 대응하는 존들로 옮겨질 것이다.
도 8을 참조하면, S210 단계에서, 메모리 제어기(200)는 존을 기준으로 조각모음 명령들을 분류할 것이다. 예를 들면, 메모리 제어기(200)는 소스 어드레스들(6, 7, 19, 20, 21, 11)과 목적지 어드레스들(0, 1, 2, 14, 15, 16)을 기준으로 파일 조각들이 옮겨질 존들을 결정할 것이다. 다시 말해서, 목적지 존을 기준으로 조각모음 명령들이 존 단위로 구분될 것이다. 도 8a에 도시된 예의 경우, 메모리 제어기(200)는 파일 조각들이 옮겨질 존들로서 제 1 존(Z0)과 제 3 존(Z2)을 선택할 것이다. 하지만, 본 발명이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 파일 조각들이 옮겨질 존들로서 제 2 존(Z1)과 제 4 존(Z3)이 선택될 수 있다.
예시적인 실시예에 있어서, 제 1 존(Z0)으로 파일 조각들이 옮겨지고, 그 다음에 제 3 존(Z2)으로 파일 조각들이 옮겨질 것이다. 하지만, 제 3 존(Z2)으로 파일 조각들이 옮겨지고, 그 다음에 제 1 존(Z0)으로 파일 조각들이 옮겨질 수 있다. 결과적으로, 일련의 조각모음 명령들을 통해 입력된 소스 및 목적지 어드레스들은 파일 조각들이 옮겨질 존들(예를 들면, Z0, Z2)에 각각 대응하는 2개의 조각모음 명령들(Defrag(7,6,10),(0,1,2), Defrag(20,21,11),(14,15,16))로 구분될 수 있다.
이하, 제 1 존(Z0)으로 파일 조각들(A3, A4, A5)이 옮겨지는 동작(Defrag(7,6,10),(0,1,2))이 도 8b 내지 도 8d을 참조하여 상세히 설명될 것이다.
S220 단계에서, 소오스 존에 있는 파일 조각들이 새롭게 할당된 블록으로 복사될 것이다. 예를 들면, 도 9b을 참조하면, 메모리 제어기(200)는 제 2 존(Z1)의 파일 조각들(A3, A4)이 옮겨질 새로운 블록을 할당할 것이다. 새로운 블록으로 제 2 존(Z1)의 파일 조각들(A3, A4)이 옮겨질 것이다. 이때, 파일 조각들(A3, A4)에 대응하는 물리 블록의 저장 공간들은 무효한 영역으로 표기될 것이다. 이는 맵핑 테이블의 변경을 통해 행해질 것이다.
S230 단계에서, 새롭게 할당된 블록이 다른 소오스 존으로 이동될 것이다. 예를 들면, 도 9c에 도시된 바와 같이, 파일 조각들(A3, A4)이 저장된 물리 블록이 제 4 존(Z3)으로 이동될 것이다. 이는 맵핑 테이블의 변경을 통해 행해질 것이다. S240 단계에서, 다른 소오스 존에 있는 파일 조각들이 새롭게 할당된 블록으로 옮겨질 것이다. 예를 들면, 도 9c에 도시된 바와 같이, 제 4 존(Z3)에 있는 파일 조각(A5)이 파일 조각들(A3, A4)이 저장된 물리 블록으로 옮겨질 것이다. 이때, 파일 조각(A5)에 대응하는 물리 블록의 저장 공간은 무효한 영역으로 표기될 것이다. S250 단계에서, 데이터로 가득찬 블록이 목적지 존으로 이동될 것이다. 예를 들면, 도 9d에 도시된 바와 같이, 파일 조각들(A3, A4, A5)이 저장된 물리 블록이 제 1 존(Z0)으로 이동될 것이다. 이는 맵핑 테이블의 변경을 통해 행해질 것이다. 앞서의 동작들을 통해, 제 1 존(Z0)으로 파일 조각들(A3, A4, A5)이 옮겨지는 동작(Defrag(7,6,10),(0,1,2))이 완료될 것이다.
S250 단계에서, 모든 조각모음 명령들이 수행되었는 지의 여부가 판별될 것이다. 만약 그렇다면, 절차는 종료될 것이다. 만약 그렇지 않다면, 절차는 S220 단계로 진행할 것이다. 이후, 제 3 존(Z2)으로 파일 조각들이 옮겨지는 동작(Defrag(20,21,11),(14,15,16))이 단계들(S220~S250)을 통해 행해지며, 이는 도 9e 내지 도 9g을 참조하여 상세히 설명될 것이다.
도 9e을 참조하면, 메모리 제어기(200)는 제 4 존(Z3)의 파일 조각들(A6, A7)이 옮겨질 새로운 블록을 할당할 것이다. 새로운 블록으로 제 4 존(Z3)의 파일 조각들(A6, A7)이 옮겨질 것이다. 이때, 파일 조각들(A6, A7)에 대응하는 물리 블록의 저장 공간들은 무효한 영역으로 표기될 것이다. 이는 맵핑 테이블의 변경을 통해 행해질 것이다. 이러한 경우, 무효한 데이터(A5, A6, A7)가 저장된 제 4 존(Z3)의 물리 블록은 무효 블록으로 처리될 것이다. 그 다음에, 도 9f에 도시된 바와 같이, 파일 조각들(A6, A7)이 저장된 물리 블록이 제 2 존(Z1)으로 이동될 것이다. 이는 맵핑 테이블의 변경을 통해 행해질 것이다. 제 2 존(Z1)에 있는 파일 조각(A8)이 파일 조각들(A6, A7)이 저장된 물리 블록으로 옮겨질 것이다. 이때, 파일 조각(A5)에 대응하는 물리 블록의 저장 공간은 무효한 영역으로 표기될 것이다. 이러한 경우, 무효한 데이터(A3, A4, A8)가 저장된 제 2 존(Z1)의 물리 블록은 무효 블록으로 처리될 것이다. 마지막으로, 도 9g에 도시된 바와 같이, 파일 조각들(A6, A7, A8)이 저장된 물리 블록이 제 3 존(Z2)으로 이동될 것이다. 이는 맵핑 테이블의 변경을 통해 행해질 것이다. 앞서의 동작들을 통해, 제 3 존(Z2)으로 파일 조각들(A6, A7, A8)이 옮겨지는 동작(Defrag(20,21,11),(14,15,16))이 완료될 것이다.
도 6d 및 도 9g을 참조하면, 조각모음 명령들을 통해 행해진 조각모음의 결과(도 9g 참조)는 읽기 및 쓰기 명령들의 반복을 통해 행해진 조각모음의 결과(도 6d 참조)와 동일할 것이다. 조각모음 명령들을 통해 조각모음이 행해질 때 존들 사이의 파일 조각 이동은 읽기 및 쓰기 명령들의 반복을 통해 행해진 조각모음과 비교하여 볼 때 감소할 것이다.
앞서의 실시예들은 동일한 존에 속한 파일 조각들의 정렬이 고려되지 않는다는 가정하에서 설명되었다. 하지만, 본 발명이 이에 국한되지 않음은 잘 이해될 것이다. 동일한 존에 속한 파일 조각들은 LBA 명령을 이용하여 저장 매체(300)에 저장된 데이터의 실질적인 이동없이 매핑 정보만을 변경함으로써 순차적으로 정렬될 것이다. 이는 이하 상세히 설명될 것이다.
도 10은 본 발명에 따른 데이터 재정렬을 위한 LAB 명령을 보여주는 도면이다.
도 10을 참조하면, 동일한 존에 속한 파일 조각들을 순차적으로 정렬하기 위해서 호스트(100) (예를 들면, 응용 프로그램(110))은 저장 매체(300)를 제어하기 위한 메모리 제어기(200)로 LBA 명령을 전송할 것이다. LBA 명령은 오퍼랜드 필드(F1), 시작 주소 필드(F2), 접근 크기 필드(F3), 그리고 LBA 이동/종료 필드(F4)를 포함할 것이다. 오퍼랜드 필드(F1)는 쓰기 동작 또는 읽기 동작을 나타내는 정보를 포함하고, 시작 주소 필드(F2)는 쓰기/읽기 동작의 시작 주소 정보를 포함하며, 접근 크기 필드(F3)는 쓰여질/읽혀질 데이터의 크기를 나타내는 정보를 포함하며, LBA 이동/종료 필드(F4)는 LBA 이동 또는 LBA 이동의 끝을 나타내는 정보를 포함할 것이다.
예시적인 실시예에 있어서, LBA 명령은 읽기/쓰기 명령을 이용하며, 입출력 패킷의 예비 영역(reserved area) 또는 컨택스트 아이드(context id)에 LAB 이동/종료가 표기될 것이다.
호스트(100)에서 메모리 제어기(200)로 전송되는 LBA 명령에 있어서, 예를 들면, "R"은 읽기 동작을 나타내고, "W"은 쓰기 동작을 나타내며, "L"는 LAB 이동을 나타내고, "E"는 LBA 이동의 끝을 나타낼 것이다.
도 11a 내지 도 11c는 본 발명에 따른 유저 장치에서 LBA 명령을 이용한 데이터 재정렬 동작을 설명하기 위한 도면들이다.
도 11a에 도시된 주소 체계는 본 발명에 따른 조각모음이 완료된 결과를 보여주는 도 9g와 실질적으로 동일할 것이다. 제 1 존(Z0)에 있어서, 논리 어드레스들(0, 1, 2)은 파일 조각들(A3, A4, A5)이 저장된 물리 블록과 맵핑되고, 논리 어드레스들(3, 4, 5)은 파일 조각들(A0, A1, A2)이 저장된 물리 블록과 맵핑되어 있다. 제 3 존(Z2)에 있어서, 논리 어드레스들(14, 15, 16)은 파일 조각들(A6, A7, A8)이 저장된 물리 블록과 맵핑되고, 논리 어드레스들(12, 13)은 파일 조각들(A9, A10)이 저장된 물리 블록과 맵핑되어 있다. 제 1 존(Z0)에 있는 파일 조각들(A0~A5)은 순차적이지 않다. 이러한 경우, 제 1 존(Z0)에 있는 파일 조각들(A0~A5)을 읽기 위해서는 2번의 읽기 동작들이 필요하다. 예를 들면, 파일 조각들(A0~A5)이 순차적이지 않기 때문에, 파일 조각들(A3~A5)에 대한 읽기 동작과 파일 조각들(A0~A1)에 대한 읽기 동작이 요구될 것이다. 마찬가지로, 제 3 존(Z2)에 있는 파일 조각들(A6~A10)은 순차적이지 않다. 이러한 경우, 제 3 존(Z2)에 있는 파일 조각들(A6~A10)을 읽기 위해서는 2번의 읽기 동작들이 필요하다. 예를 들면, 파일 조각들(A6~A10)이 순차적이지 않기 때문에, 파일 조각들(A9, A10)에 대한 읽기 동작과 파일 조각들(A6~A8)에 대한 읽기 동작이 요구될 것이다.
LBA 이동(3, 0, 3)의 예가 도 11b에 도시되어 있다. LBA 이동(3, 0, 3)은 시작 어드레스로서 논리 어드레스(3)로부터 3개의 연속적인 파일 조각들을 목적지 어드레스로서 논리 어드레스(0)로 이동시키기 위한 것이다. LBA 이동(3, 0, 3)을 통해 제 1 존(Z0)에 있는 파일 조각들(A0~A5)은 순차적으로 재정렬될 것이다. 이러한 경우, 도 11b에 도시된 바와 같이, 저장 매체(300)의 실질적인 데이터 이동이 이루어지지 않는다. 단지, 메모리 제어기(200)(즉, 플래시 변환 계층(FTL))의 제어하에 논리 어드레스들과 물리 어드레스들 사이의 맵핑 관계가 변경될 것이다.
LBA 이동(14, 12, 3)의 예가 도 11c에 도시되어 있다. LBA 이동(14, 12, 3)은 시작 어드레스로서 논리 어드레스(14)로부터 3개의 연속적인 파일 조각들을 목적지 어드레스로서 논리 어드레스(12)로 이동시키기 위한 것이다. LBA 이동(14, 12, 3)을 통해 제 3 존(Z2)에 있는 파일 조각들(A6~A10)은 순차적으로 재정렬될 것이다. 이러한 경우, 도 11c에 도시된 바와 같이, 저장 매체(300)의 실질적인 데이터 이동이 이루어지지 않는다. 단지, 메모리 제어기(200)(즉, 플래시 변환 계층(FTL))의 제어하에 논리 어드레스들과 물리 어드레스들 사이의 맵핑 관계가 변경될 것이다.
도 12는 본 발명의 다른 실시예에 따른 유저 장치의 조각모음을 보여주는 흐름도이다.
S310 단계에서, 응용 프로그램(110)은 존을 기반으로 한 조각모음을 실행할 것이다. 여기서, 조각모음은 도 5a 내지 도 5h을 참조하여 설명된 방식, 도 6a 내지 도 6d을 참조하여 설명된 방식, 또는 도 9a 내지 도 9g을 참조하여 설명된 방식으로 행해질 것이다.
예시적인 실시예에 있어서, 도 9a 내지 도 9g을 참조하여 설명된 방식으로 행해진 조각모음이 완료된 경우, 메모리 제어기(200)는 호스트(100)의 추가적인 정보없이 무효한 데이터를 저장한 물리 블록을 무효 블록으로 처리할 것이다. 무효한 데이터를 저장한 물리 블록이 조각모음을 통해 무효 블록으로 처리됨에 따라, 추후 행해지는 가비지 콜렉션을 통해 가용 공간을 확보하는 데 유리하다.
S320 단계에서, 응용 프로그램(110)은 조각모음된 존에 대한 데이터 재정렬이 요구되는 지의 여부를 판별할 것이다. 만약 조각모음된 존에 대한 데이터 재정렬이 요구되지 않으면, 절차는 종료될 것이다.
만약 조각모음된 존에 대한 데이터 재정렬이 요구되면, 절차는 S330 단계로 진행할 것이다. S330 단계에서, 응용 프로그램(110)은 조각모음된 존(들)에 대한 데이터 재정렬을 위해서 LBA 명령을 메모리 제어기(200)로 전송할 것이다. 조각모음된 존(들)에 대한 데이터 재정렬은 도 11a 내지 도 11c을 참조하여 설명된 방식으로 행해질 것이다. 조각모음된 존(들)에 대한 데이터 재정렬이 완료되면, 절차는 종료될 것이다.
예시적인 실시예에 있어서, 본 발명에 따른 조각모음 기법은 논리 어드레스들과 물리 어드레스들의 맵핑 관계가 존 단위로 관리될 때 더욱 효과적이다. 이는 옮겨질 파일 조각이 존재하는 소스 존이 파일 조각이 옮겨질 목적지 존과 다른 경우, 플래시 변환 계층에서 관리되는 맵핑 정보가 저장 매체(300)에 저장된 목적지 존의 맵핑 정보로 교체되어야 한다. 따라서, 조각모음을 존을 기준으로 수행함으로써 맵핑 정보의 교환으로 인한 호스트(100)와 메모리 제어기(200) 사이의 입출력 시간의 증가를 줄일 수 있다.
도 13은 본 발명의 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다. 컴퓨팅 시스템은 처리 유니트(2101), 사용자 인터페이스(2202), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(2303), 메모리 제어기(2404), 그리고 저장 매체(2505)를 포함한다.
메모리 제어기(2404) 및 저장 매체(2502)는 도 1에 도시된 것과 실질적으로 동일하게 구성될 것이다. 예를 들면, 논리 주소 공간의 분할 관리를 통해 조각모음을 보다 빠르고 효율적으로 처리하는 것이 가능하다. 또한, 조각모음 명령/LBA 명령을 통해 조각모음과 관련된 연산을 효율적으로 처리하는 것이 가능하다.
저장 매체(2505)에는 처리 유니트(2101)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(2404)를 통해 저장될 것이다. 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(2606)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 잘 이해될 것이다.
도 14는 본 발명의 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 14를 참조하면, 반도체 드라이브(4000)(SSD)는 저장 매체(4100)와 제어기(4200)를 포함할 것이다. 저장 매체(4100)는 복수의 채널들(CH0~CHn-1)을 통해 제어기(4200)와 연결될 것이다. 각 채널에는 복수의 불 휘발성 메모리들이 공통으로 연결될 것이다. 제어기(4200) 및 저장 매체(4100)는 도 1에 도시된 것과 실질적으로 동일하게 구성될 것이다. 예를 들면, 논리 주소 공간의 분할 관리를 통해 조각모음을 보다 빠르고 효율적으로 처리하는 것이 가능하다. 또한, 조각모음 명령/LBA 명령을 통해 조각모음과 관련된 연산을 효율적으로 처리하는 것이 가능하다.
도 15는 도 14에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이고, 도 16은 도 14에 도시된 반도체 드라이브를 이용한 스트리지 서버를 개략적으로 보여주는 블록도이다.
본 발명의 실시예에 따른 반도체 드라이브(4000)는 스토리지를 구성하는 데 사용될 수 있다. 도 15에 도시된 바와 같이, 스토리지는 도 14에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 반도체 드라이브들을 포함할 것이다. 본 발명의 실시예에 따른 반도체 드라이브(4000)는 스토리지 서버를 구성하는 데 사용될 수 있다. 도 16에 도시된 바와 같이, 스토리지 서버는 도 14에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 반도체 드라이브들(4000), 그리고 서버(4000A)를 포함할 것이다. 또한, 이 분야에 잘 알려진 RAID 제어기(4000B)가 스토리지 서버에 제공될 수 있음은 잘 이해될 것이다.
도 17은 본 발명의 실시예에 따른 반도체 드라이브가 적용되는 시스템을 개략적으로 보여주는 도면이다.
도 17에 도시된 바와 같이, 본 발명의 실시예에 따른 반도체 드라이브는 메일 서버(8100)에도 적용될 수 있다.
도 18은 본 발명의 실시예에 따른 메모리 카드(memory card)를 개략적으로 보여주는 블록도이다.
메모리 카드는 예를 들어, MMC 카드, SD카드, 멀티유즈(multiuse) 카드, 마이크로 SD카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD카드, 칩카드(chipcard), 스마트카드(smartcard), USB카드 등일 수 있다.
도 18을 참조하면, 메모리 카드는 외부와의 인터페이스를 수행하는 인터페이스부(9221), 버퍼 메모리를 갖고 메모리 카드의 동작을 제어하는 제어기(9222), 하나 또는 그 보다 많은 불 휘발성 메모리 장치들(9207)을 포함할 것이다. 제어기(9222)는 프로세서로서, 불 휘발성 메모리 장치(9207)의 라이트 동작 및 리드 동작을 제어할 수 있다. 구체적으로, 제어기(9222)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 불 휘발성 메모리 장치(9207) 및 인터페이스부(9221)와 커플링되어 있다.
제어기(9222) 및 불 휘발성 메모리 장치(8207)은 도 1에 도시된 것과 실질적으로 동일하게 구성될 것이다. 예를 들면, 논리 주소 공간의 분할 관리를 통해 조각모음을 보다 빠르고 효율적으로 처리하는 것이 가능하다. 또한, 조각모음 명령/LBA 명령을 통해 조각모음과 관련된 연산을 효율적으로 처리하는 것이 가능하다.
도 19는 본 발명의 실시예에 따른 디지털 스틸 카메라(digital still camera)를 개략적으로 보여주는 블록도이다.
도 19를 참조하면, 디지털 스틸 카메라는 바디(9301), 슬롯(9302), 렌즈(9303), 디스플레이부(9308), 셔터 버튼(9312), 스트로브(strobe)(9318) 등을 포함한다. 특히, 슬롯(9308)에는 메모리 카드(9331)가 삽입될 수 있고, 메모리 카드(9331)는 도 1에서 설명된 메모리 제어기 및 저장 매체를 포함할 것이다. 예를 들면, 논리 주소 공간의 분할 관리를 통해 조각모음을 보다 빠르고 효율적으로 처리하는 것이 가능하다. 또한, 조각모음 명령/LBA 명령을 통해 조각모음과 관련된 연산을 효율적으로 처리하는 것이 가능하다.
메모리 카드(9331)가 접촉형(contact type)인 경우, 메모리 카드(9331)가 슬롯(9308)에 삽입될 때 메모리 카드(9331)와 회로 기판 상의 특정 전기 회로가 전기적으로 접촉하게 된다. 메모리 카드(9331)가 비접촉형(non-contact type)인 경우, 무선 신호를 통해서 메모리 카드(9331)가 액세스될 것이다.
도 20은 도 18의 메모리 카드가 사용되는 다양한 응용 분야들을 보여주는 도면이다.
도 20을 참조하면, 메모리 카드(9331)는 비디오 카메라(VC), 텔레비전(TV), 오디오 장치(AD), 게임장치(GM), 전자 음악 장치(EMD), 휴대폰(HP), 컴퓨터(CP), PDA(Personal Digital Assistant), 보이스 레코더(voice recorder)(VR), PC 카드(PCC), 등에 사용될 수 있다.
본 발명의 실시예에 있어서, 메모리 셀들은 가변 저항 메모리 셀로 구성될 수 있으며, 예시적인 가변 저항 메모리 셀 및 그것을 포함한 메모리 장치가 미국특허번호 제7529124호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명의 다른 실시예에 있어서, 메모리 셀들은 전하 저장층을 갖는 다양한 셀 구조들 중 하나를 이용하여 구현될 수 있다. 전하 저장층을 갖는 셀 구조는 전하 트랩층을 이용하는 전하 트랩 플래시 구조, 어레이들이 다층으로 적층되는 스택 플래시 구조, 소오스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 등을 포함할 것이다.
전하 저장층으로서 전하 트랩 플래시 구조를 갖는 메모리 장치가 미국특허 제6858906호, 미국공개특허 제2004-0169238호, 그리고 미국공개특허 제2006-0180851호에 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다. 소오스/드레인이 없는 플래시 구조는 대한민국특허 제673020호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100: 호스트
200; 메모리 제어기
300: 저장 매체

Claims (10)

  1. 호스트와 비휘발성 저장 장치를 포함하는 유저 장치의 조각모음 방법에 있어서:
    상기 비휘발성 저장 장치에 저장된 제 1 파일의 조각들이 동일한 논리 어드레스 존에 존재하는 지의 여부를 판별하고,
    상기 제 1 파일의 조각들이 다른 논리 어드레스 존들에 존재할 때 상기 제 1 파일의 조각들에 대한 조각모음을 실행하는 것을 포함하며,
    상기 제 1 파일의 조각들에 대한 조각모음시, 상기 제 1 파일의 조각들은 상기 다른 논리 어드레스 존들 중 적어도 하나의 존에 대응하는 논리 어드레스 공간으로 옮겨지는 조각모음 방법.
  2. 제 1 항에 있어서,
    상기 제 1 파일의 조각들이 동일한 논리 어드레스 존에 존재할 때 상기 제 1 파일의 조각들에 대한 조각모음을 스킵하는 것을 더 포함하며 조각모음 방법.
  3. 제 1 항에 있어서,
    상기 제 1 파일의 조각들에 대한 조각모음은 상기 제 1 파일의 조각들 각각에 대한 읽기 및 쓰기 명령들을 상기 호스트에서 상기 비휘발성 저장 장치로 전송함으로써 행해지는 조각모음 방법.
  4. 제 1 항에 있어서,
    상기 제 1 파일의 조각들에 대한 조각모음은 일련의 조각모음 명령들을 상기 호스트에서 상기 비휘발성 저장 장치로 전송함으로써 행해지는 조각모음 방법.
  5. 제 4 항에 있어서,
    상기 각 조각모음 명령은 읽기/쓰기 명령을 이용하며, 상기 읽기/쓰기 명령은 조각모음 및 조각모음의 종료를 나타내는 정보를 포함하는 조각모음 방법.
  6. 제 4 항에 있어서,
    상기 비휘발성 저장 장치는 상기 일련의 조각모음 명령들을 상기 논리 어드레스 존의 단위로 분류하고, 분류 결과를 기준으로 상기 제 1 파일의 조각들을 논리 어드레스 존들에 대응하는 논리 어드레스 공간들로 옮기는 조각모음 방법.
  7. 제 6 항에 있어서,
    상기 비휘발성 저장 장치는 상기 제 1 파일의 조각들이 조각모음되는 동안 생긴 무효한 데이터를 저장하는 물리 블록을 상기 호스트의 추가 정보없이 무효 블록으로 처리하는 조각모음 방법.
  8. 제 1 항에 있어서,
    상기 제 1 파일의 조각들에 대한 조각모음이 완료된 후 상기 조각모음된 파일의 조각들에 대한 재정렬이 요구되는 지의 여부를 판별하는 것을 더 포함하는 조각모음 방법.
  9. 제 8 항에 있어서,
    상기 조각모음된 파일의 조각들에 대한 재정렬이 요구되는 경우, 상기 호스트는 재정렬될 조각들에 대한 소스 어드레스 및 목적지 어드레스를 포함하는 LBA 명령을 상기 비휘발성 저장 장치로 전송하며, 상기 비휘발성 저장 장치는 상기 조각모음된 파일의 조각들의 물리적인 이동없이 상기 조각모음된 파일의 맵핑 정보의 변경을 통해 상기 조각모음된 파일의 조각들에 대한 재정렬을 수행하는 조각모음 방법.
  10. 조각모음 프로그램을 포함하는 호스트와; 그리고
    상기 호스트의 요청에 응답하여 저장 매체를 제어하는 메모리 제어기를 포함하며,
    상기 호스트에 의해서 관리되는 논리 어드레스 공간은 복수의 논리 어드레스 존들로 구분되며, 상기 조각모음 프로그램의 조각모음은 논리 어드레스 존을 기준으로 행해지며, 상기 조각모음 프로그램은 동일한 논리 어드레스 존에 존재하는 조각난 파일에 대한 조각모음을 생략하고 다른 논리 어드레스 존들에 존재하는 조각난 파일에 대한 조각모음을 수행하며,
    상기 조각모음 프로그램은 조각모음이 완료된 후 조각모음된 파일의 조각들에 대한 재정렬이 요구되는 지의 여부를 판별하며,
    상기 조각모음된 파일의 조각들에 대한 재정렬이 요구되는 경우, 상기 조각모음 프로그램은 재정렬될 조각들에 대한 소스 어드레스 및 목적지 어드레스를 포함하는 LBA 명령을 상기 메모리 제어기로 전송하며, 상기 메모리 제어기는 상기 조각모음된 파일의 조각들의 물리적인 이동없이 상기 조각모음된 파일의 맵핑 정보의 변경을 통해 상기 조각모음된 파일의 조각들에 대한 재정렬을 수행하는 유저 장치.
KR1020130012520A 2013-02-04 2013-02-04 존-기반 조각모음 방법 및 그것을 이용한 유저 장치 KR20140099737A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130012520A KR20140099737A (ko) 2013-02-04 2013-02-04 존-기반 조각모음 방법 및 그것을 이용한 유저 장치
US14/152,333 US9355027B2 (en) 2013-02-04 2014-01-10 Zone-based defragmentation methods and user devices using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130012520A KR20140099737A (ko) 2013-02-04 2013-02-04 존-기반 조각모음 방법 및 그것을 이용한 유저 장치

Publications (1)

Publication Number Publication Date
KR20140099737A true KR20140099737A (ko) 2014-08-13

Family

ID=51260307

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130012520A KR20140099737A (ko) 2013-02-04 2013-02-04 존-기반 조각모음 방법 및 그것을 이용한 유저 장치

Country Status (2)

Country Link
US (1) US9355027B2 (ko)
KR (1) KR20140099737A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001221A (ko) * 2019-06-27 2021-01-06 중앙대학교 산학협력단 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9652154B2 (en) * 2014-02-05 2017-05-16 Sandisk Technologies Llc Storage module and host device for storage module defragmentation
DE102014112496A1 (de) 2014-08-29 2016-03-03 Bundesdruckerei Gmbh Speicherverwaltung für eine Chipkarte
CN106257434B (zh) * 2015-06-16 2019-04-30 深圳市中兴微电子技术有限公司 一种基于增强型外设互连协议总线的数据传输方法及装置
US10853181B1 (en) * 2015-06-29 2020-12-01 EMC IP Holding Company LLC Backing up volumes using fragment files
US10235079B2 (en) * 2016-02-03 2019-03-19 Toshiba Memory Corporation Cooperative physical defragmentation by a file system and a storage device
US20170255565A1 (en) * 2016-03-02 2017-09-07 Intel Corporation Method and apparatus for providing a contiguously addressable memory region by remapping an address space
JP2019045955A (ja) * 2017-08-30 2019-03-22 東芝メモリ株式会社 記憶装置およびデータの配置の最適化方法
US11157404B2 (en) * 2019-08-27 2021-10-26 Micron Technology, Inc. Remapping techniques for a range of logical block addresses in a logical to physical table of NAND storage
US11520695B2 (en) 2021-03-02 2022-12-06 Western Digital Technologies, Inc. Storage system and method for automatic defragmentation of memory
US11809747B2 (en) 2021-12-21 2023-11-07 Western Digital Technologies, Inc. Storage system and method for optimizing write-amplification factor, endurance, and latency during a defragmentation operation
US11809736B2 (en) 2021-12-21 2023-11-07 Western Digital Technologies, Inc. Storage system and method for quantifying storage fragmentation and predicting performance drop
US11847343B2 (en) 2021-12-22 2023-12-19 Western Digital Technologies, Inc. Storage system and method for non-blocking coherent re-writes

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778392A (en) * 1996-04-01 1998-07-07 Symantec Corporation Opportunistic tile-pulling, vacancy-filling method and apparatus for file-structure reorganization
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
US6735678B2 (en) 2000-05-24 2004-05-11 Seagate Technology Llc Method and apparatus for disc drive defragmentation
US20060180851A1 (en) 2001-06-28 2006-08-17 Samsung Electronics Co., Ltd. Non-volatile memory devices and methods of operating the same
US7253467B2 (en) 2001-06-28 2007-08-07 Samsung Electronics Co., Ltd. Non-volatile semiconductor memory devices
US7401174B2 (en) 2003-12-16 2008-07-15 Matsushita Electric Industrial Co., Ltd. File system defragmentation and data processing method and apparatus for an information recording medium
TW200608201A (en) 2004-04-28 2006-03-01 Matsushita Electric Ind Co Ltd Nonvolatile storage device and data write method
US8051115B2 (en) * 2004-09-08 2011-11-01 Koby Biller Measuring fragmentation on direct access storage devices and defragmentation thereof
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
KR100673020B1 (ko) 2005-12-20 2007-01-24 삼성전자주식회사 전계효과 소오스/드레인 영역을 가지는 반도체 장치
KR100764738B1 (ko) 2006-04-06 2007-10-09 삼성전자주식회사 향상된 신뢰성을 갖는 상변화 메모리 장치, 그것의 쓰기방법, 그리고 그것을 포함한 시스템
US7721059B2 (en) 2006-07-06 2010-05-18 Nokia Corporation Performance optimization in solid-state media
US20080155175A1 (en) 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
JP5221332B2 (ja) 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US20100185806A1 (en) 2009-01-16 2010-07-22 Arvind Pruthi Caching systems and methods using a solid state disk
JP5334048B2 (ja) 2009-01-22 2013-11-06 株式会社日立製作所 メモリ装置および計算機
US8190811B2 (en) 2009-06-09 2012-05-29 Seagate Technology, Llc Defragmentation of solid state memory
JP2010287049A (ja) 2009-06-11 2010-12-24 Toshiba Corp メモリシステムおよびメモリシステムの管理方法
KR101638061B1 (ko) 2009-10-27 2016-07-08 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법
US8140740B2 (en) 2009-10-29 2012-03-20 Hewlett-Packard Development Company, L.P. Data defragmentation of solid-state memory
JP2012008651A (ja) 2010-06-22 2012-01-12 Toshiba Corp 半導体記憶装置、その制御方法および情報処理装置
US20120079229A1 (en) * 2010-09-28 2012-03-29 Craig Jensen Data storage optimization for a virtual platform
US20140019706A1 (en) * 2012-07-16 2014-01-16 Infinidat Ltd. System and method of logical object management
US20140173178A1 (en) * 2012-12-19 2014-06-19 Apple Inc. Joint Logical and Physical Address Remapping in Non-volatile Memory
US9021187B2 (en) * 2013-01-29 2015-04-28 Sandisk Technologies Inc. Logical block address remapping
US20140229657A1 (en) * 2013-02-08 2014-08-14 Microsoft Corporation Readdressing memory for non-volatile storage devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001221A (ko) * 2019-06-27 2021-01-06 중앙대학교 산학협력단 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치

Also Published As

Publication number Publication date
US20140223083A1 (en) 2014-08-07
US9355027B2 (en) 2016-05-31

Similar Documents

Publication Publication Date Title
KR20140099737A (ko) 존-기반 조각모음 방법 및 그것을 이용한 유저 장치
CN111344683B (zh) 非易失性存储器装置中的命名空间分配
US10635310B2 (en) Storage device that compresses data received from a host before writing therein
KR101042588B1 (ko) 플래시 메모리들에 직접 데이터 파일 저장
US9852061B2 (en) Memory device and operating method of memory device
KR100951107B1 (ko) 최적의 성능을 위한 파일 관리 방법
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
US8200889B2 (en) Variable space page mapping method and apparatus for flash memory device
US20060184719A1 (en) Direct data file storage implementation techniques in flash memories
US20060184718A1 (en) Direct file data programming and deletion in flash memories
US20140281172A1 (en) Nonvolatile memory device, electronic device and computing system including the same
US20130103893A1 (en) System comprising storage device and related methods of operation
KR20090131146A (ko) 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
Lee et al. OSSD: A case for object-based solid state drives
US11762580B2 (en) Memory system and control method
KR20090107098A (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR20090108695A (ko) 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법
JP2006252137A (ja) 不揮発性記憶装置の最適化方法
US20230103355A1 (en) Support Higher Number of Active Zones in ZNS SSD
KR101117390B1 (ko) 비휘발성 메모리 장치의 데이터 접근 방법 및 이를 수행하는 프로그램을 기록한 기록매체
CN117616377A (zh) 跨zns ssd中的超级设备的超级块分配
US11429519B2 (en) System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive
KR101609304B1 (ko) 멀티칩 플래시 저장장치 및 그 방법
KR101655508B1 (ko) 메모리 장치 및 그 동작 방법
CN112148645A (zh) 去分配命令处理方法及其存储设备

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid