1 |
1
프로세싱 유니트와;
상기 프로세싱 유니트에 의해서 운용되는 내용기반 파일 시스템이 로드되는 램과; 그리고
상기 내용기반 파일 시스템에 의해서 관리되는 블록들을 구비한 플래시 메모리를 포함하며,
상기 내용기반 파일 시스템은 파일 쓰기가 요청될 때 상기 블록들 중 적어도 하나의 블록을 선택하고, 상기 선택된 적어도 하나의 블록이 순수 블록, 혼합 블록, 그리고 자유 블록 중 어느 하나에 속하는 지를 결정하며, 상기 결정된 블록 종류를 나타내는 블록 종류 정보와 함께 상기 쓰기 요청된 파일을 상기 적어도 하나의 블록에 저장하는 시스템
|
2 |
2
제 1 항에 있어서,
상기 적어도 하나의 블록이 상기 쓰기 요청된 파일로 채워지는 경우, 상기 내용기반 파일 시스템은 상기 적어도 하나의 블록을 상기 순수 블록으로 결정하는 시스템
|
3 |
3
제 2 항에 있어서,
상기 적어도 하나의 블록 중 일부가 상기 쓰기 요청된 파일로 채워지는 경우, 상기 내용기반 파일 시스템은 상기 적어도 하나의 블록을 상기 혼합 블록으로 결정하는 시스템
|
4 |
4
제 1 항에 있어서,
상기 선택된 적어도 하나의 블록이 순수 블록, 혼합 블록, 그리고 자유 블록 중 어느 하나에 속하는 지의 결정은 상기 쓰기 요청된 파일의 크기를 블록의 크기로 나누고, 몫에 대응하는 블록들을 순수 블록으로 그리고 나머지에 대응하는 블록을 혼합 블록으로 결정함으로써 수행되는 시스템
|
5 |
5
제 1 항에 있어서,
상기 내용기반 파일 시스템은 마운트시 상기 각 블록의 첫 번째 페이지에 속한 스페어 영역으로부터 블록 종류 정보를 읽고, 상기 읽혀진 블록 종류 정보에 따라 상기 각 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔을 결정하는 시스템
|
6 |
6
제 5 항에 있어서,
상기 내용기반 파일 시스템은 상기 읽혀진 블록 종류 정보가 혼합 블록을 나타낼 때 상기 선택된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔 후 상기 선택된 블록을 혼합 블록 리스트에 삽입하고,
상기 읽혀진 블록 종류 정보가 자유 블록과 순수 블록 중 하나를 나타낼 때 상기 선택된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔없이 상기 선택된 블록을 자유 블록 리스트와 순수 블록 리스트 중 어느 하나에 삽입함으로써 오픈파일 테이블을 구성하는 시스템
|
7 |
7
블록들로 구성된 비휘발성 메모리를 포함한 시스템의 블록 관리 방법에 있어서:
상기 블록들 중 선택된 블록의 첫 번째 페이지에 속한 스페어 영역으로부터 블록 종류 정보를 읽는 단계와;
상기 읽혀진 블록 종류 정보가 혼합 블록을 나타낼 때, 상기 선택된 블록의 나머지 페이지들의 스페어 영역들을 스캔하여 상기 선택된 블록을 혼합 블록 리스트에 삽입하는 단계와;
상기 읽혀진 블록 종류 정보가 자유 블록과 순수 블록 중 하나를 나타낼 때, 상기 선택된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔없이 상기 선택된 블록을 자유 블록 리스트와 순수 블록 리스트 중 어느 하나에 삽입하는 단계와; 그리고
상기 비휘발성 메모리의 블록들 모두 선택될 때까지 상기 읽는 단계 및 상기 삽입 단계들을 반복적으로 수행하는 단계를 포함하는 것을 특징으로 하는 방법
|
8 |
8
제 7 항에 있어서,
상기 블록 종류 정보는 파일이 상기 비휘발성 메모리에 저장될 때 생성되는 것을 특징으로 하는 방법
|
9 |
9
제 7 항에 있어서,
상기 자유 블록 리스트에 포함된 자유 블록들의 수가 임계값보다 낮을 때, 상기 순수 블록 리스트, 상기 혼합 블록 리스트, 그리고 상기 자유 블록 리스트에 의거하여 내용기반 가비지 컬렉션을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법
|
10 |
10
제 9 항에 있어서,
상기 내용기반 가비지 컬렉션은 상기 혼합 블록 리스트에서 중 적은 수의 유효 페이지들을 갖는 혼합 블록들을 선택하고, 상기 선택된 혼합 블록들에 포함된 유효 페이지들을 상기 자유 블록 리스트의 자유 블록들 중 하나로 옮기고, 그리고 상기 선택된 혼합 블록들을 자유 블록으로서 자유 블록 리스트에 삽입함으로써 달성되는 것을 특징으로 하는 방법
|
11 |
11
제 7 항에 있어서,
상기 비휘발성 메모리의 블록들의 마모도 평준화를 위해서 블록 스왑을 수행하는 단계를 더 포함하며, 상기 블록 스왑은 상기 순수 블록 리스트에서 가장 작은 마모도를 갖는 순수 블록을 선택하고, 상기 자유 블록 리스트에서 가장 큰 마모도를 갖는 자유 블록을 선택하고, 상기 선택된 순수 블록의 마모도와 상기 선택된 자유 블록의 마모도의 차가 기준값을 넘을 때 상기 선택된 순수 블록과 상기 선택된 자유 블록을 스왑함으로써 달성되는 것을 특징으로 하는 방법
|
12 |
12
제 11 항에 있어서,
상기 블록 스왑은 유휴 시간에 수행되는 것을 특징으로 하는 방법
|
13 |
13
제 7 항에 있어서,
상기 블록 종류 정보는 스페어 영역의 태그에 속한 예약된 영역에 저장되는 것을 특징으로 하는 방법
|
14 |
14
블록들로 구성된 비휘발성 메모리를 포함한 시스템의 블록 관리 방법에 있어서:
상기 비휘발성 메모리의 블록들 중 쓰기 요청된 파일이 저장될 적어도 하나의 블록의 종류를 결정하는 단계와; 그리고
상기 결정된 종류를 나타내는 블록 종류 정보와 함께 상기 쓰기 요청된 파일을 상기 적어도 하나의 블록에 저장하는 단계를 포함하는 것을 특징으로 방법
|
15 |
15
제 14 항에 있어서,
상기 블록 종류 정보는 순수 블록, 혼합 블록, 그리고 자유 블록 중 어느 하나를 나타내는 것을 특징으로 하는 방법
|
16 |
16
제 15 항에 있어서,
상기 적어도 하나의 블록은 상기 적어도 하나의 블록이 상기 쓰기 요청된 파일로 채워지는 것으로 판별될 때 상기 순수 블록으로 그리고 상기 적어도 하나의 블록 중 일부가 상기 쓰기 요청된 파일로 채워지는 것으로 판별될 때 상기 혼합 블록으로 결정되는 것을 특징으로 하는 방법
|
17 |
17
제 15 항에 있어서,
상기 쓰기 요청된 파일의 크기는 블록의 크기로 나눠지며, 몫에 대응하는 블록들은 순수 블록으로 그리고 나머지에 대응하는 블록은 혼합 블록으로 결정되는 것을 특징으로 하는 방법
|
18 |
18
제 15 항에 있어서,
상기 블록 종류 정보는 상기 적어도 하나의 블록의 첫 번째 페이지에 속한 스페어 영역의 태그에 저장되고, 상기 쓰기 요청된 파일의 메타 정보는 상기 적어도 하나의 블록의 첫 번째 페이지에 속한 데이터 영역에 헤더로서 저장되는 것을 특징으로 하는 방법
|
19 |
19
제 14 항에 있어서,
마운트시, 상기 비휘발성 메모리의 각 블록의 첫 번째 페이지에 속한 스페어 영역으로부터 블록 종류 정보를 읽는 단계와; 그리고
상기 읽혀진 블록 종류 정보에 따라 상기 각 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔을 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법
|
20 |
20
제 19 항에 있어서,
상기 읽혀진 블록 종류 정보가 순수 블록 또는 자유 블록을 나타낼 때, 상기 순수 블록 또는 상기 자유 블록으로 판별된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔은 생략되며; 그리고
상기 읽혀진 블록 종류 정보가 혼합 블록을 나타낼 때, 상기 혼합 블록으로 판별된 블록의 나머지 페이지들의 스페어 영역들이 스캔되는 것을 특징으로 하는 방법
|