1 |
1
낸드 플래시 메모리를 가지는 저장부에 데이터 기록을 제어하는 방법에 있어서,상기 저장부에 쓰기(write)할 더티 페이지들을 다수의 그룹으로 분류하기 위한 그룹별 기준값들을 결정하는 단계;상기 더티 페이지들 각각에 대해 데이터의 변경 가능성을 나타내는 핫니스(hotness)를 계산하는 단계;상기 더티 페이지들을 상기 계산된 핫니스가 가장 가까운 기준값에 해당하는 그룹으로 분류하는 단계;상기 그룹들 각각의 크기가 상기 저장부에 쓰기 요청을 하는 단위인 세그먼트의 크기보다 큰지 여부를 결정하는 단계; 및상기 세그먼트의 크기와 동일 또는 큰 그룹에 대해 상기 세그먼트의 단위로 쓰기를 상기 저장부에 요청하는 단계를 포함하는 데이터 기록 제어 방법
|
2 |
2
제 1 항에 있어서,상기 세그먼트의 크기는 상기 낸드 플래시 메모리의 지우기(erase) 단위인 블록의 크기의 배수인 것을 특징으로 하는 데이터 기록 제어 방법
|
3 |
3
제 1 항에 있어서,상기 핫니스(hotness)는,해당 데이터의 쓰기 횟수에 비례하고 해당 데이터가 갱신된 후 경과 시간을 나타내는 나이에 반비례하는 것을 특징으로 하는 데이터 기록 제어 방법
|
4 |
4
제 3 항에 있어서,상기 핫니스(hotness)를 계산하는 단계는,상기 세그먼트의 변경 가능성을 나타내는 세그먼트 핫니스, 상기 낸드 플래시 메모리의 지우기(erase) 단위인 블록의 변경 가능성을 나타내는 파일 블록 핫니스 및 다수의 블록으로 구성된 파일의 변경 가능성을 나타내는 파일 핫니스 중 하나 이상을 계산하는 것을 특징으로 하는 데이터 기록 제어 방법
|
5 |
5
제 4 항에 있어서,상기 핫니스를 계산하는 단계는,상기 세그먼트에서 유효블록들의 나이의 합과 쓰기 횟수의 합을 저장하고, 유효블록이 무효블록으로 바뀔 때마다 무효블록의 나이와 쓰기횟수를 상기 합들에서 각각 뺌으로써 세그먼트 핫니스를 계산하는 것이고,상기 유효블록은 유효한 최신의 데이터를 가지는 블록이고 상기 무효블록은 무효한 이전의 데이터를 가지는 블록인 것을 특징으로 하는 데이터 기록 제어 방법
|
6 |
6
제 1 항에 있어서,상기 그룹별 기준값들을 결정하는 단계는,상기 그룹별 기준값들을 무작위로 설정하는 단계;모든 세그먼트들을 그 핫니스가 상기 그룹별 기준값들 중 가장 가까운 기준값에 해당하는 그룹으로 분류하는 단계; 및상기 그룹별로 핫니스의 평균을 계산하고 상기 그룹별 기준값들을 상기 그룹별로 계산된 평균으로 갱신하는 단계를 포함하고,상기 갱신 결과 상기 기준값에 변화가 있을 때까지 또는 상기 계산의 횟수가 기 설정된 최대값에 도달할 때까지 상기 분류하는 단계 및 상기 갱신하는 단계가 반복 수행되는 것을 특징으로 하는 데이터 기록 제어 방법
|
7 |
7
제 1 항에 있어서,상기 그룹별 기준값들을 결정하는 단계의 수행 전에 세그먼트 클리닝을 수행하는 단계를 더 포함하고,상기 세그먼트 클리닝을 수행하는 단계는,모든 세그먼트들에 대해 코스트-핫니스(cost-hotness)의 값을 계산하는 단계, 여기서, 상기 코스트-핫니스 값은 해당 세그먼트가 빅팀(victim)으로 선정되기에 적합한 정도를 나타내는 값이고, 상기 빅팀은 해당 무효블록에 쓰기를 할 수 있도록 선정된 세그먼트를 의미함;코스트-핫니스 값이 가장 큰 n개의 세그먼트를 상기 빅팀으로 선정하는 단계; 및상기 빅팀으로 선정된 세그먼트에서 유효블록을 더티 페이지로써 캐시 메모리로 옮긴 후 상기 빅팀을 쓰기 가능한 프리 세그먼트로 변경하는 단계를 포함하는 것을 특징으로 하는 데이터 기록 제어 방법
|
8 |
8
제 7 항에 있어서,상기 코스트-핫니스는,해당 세그먼트를 상기 빅팀(victim)으로 선정했을 때 재사용 가능한 프리 블록의 양이 크고 해당 세그먼트가 변경될 가능성이 낮을수록 높은 값을 가지는 것을 특징으로 하는 데이터 기록 제어 방법
|
9 |
9
제 7 항에 있어서,상기 세그먼트의 단위로 쓰기를 상기 저장부에 요청하는 단계는,프리 세그먼트 리스트에서 프리된지 가장 오래된 프리 세그먼트를 가장 먼저 쓰기를 위한 세그먼트로 할당하도록 요청하는 것을 특징으로 하는 데이터 기록 방법
|
10 |
10
제 7 항에 있어서,현재 쓰기로 할당된 프리 세그먼트를 St라고 하고, 다음에 쓰기로 할당될 프리 세그먼트를 St+1이라고 하고 상기 St+1에 속한 더티 페이지가 있을 경우, 상기 St+1에 속한 더티 페이지에 대해, 상기 그룹으로 분류하는 단계와 무관하게, 쓰기를 요청하는 단계를 더 포함하는 것을 특징으로 하는 데이터 기록 방법
|
11 |
11
낸드 플래시 메모리를 가지는 저장부와,상기 저장부에 데이터 기록을 제어하는 제어부를 포함하고,상기 제어부는,상기 저장부에 쓰기(write)할 더티 페이지들을 다수의 그룹으로 분류하기 위한 그룹별 기준값들을 결정하고, 상기 더티 페이지들 각각에 대해 데이터의 변경 가능성을 나타내는 핫니스(hotness)를 계산하며, 상기 더티 페이지들을 상기 계산된 핫니스가 가장 가까운 기준값에 해당하는 그룹으로 분류하며, 상기 그룹들 각각의 크기가 상기 저장부에 쓰기 요청을 하는 단위인 세그먼트의 크기보다 큰지 여부를 결정하며, 상기 세그먼트의 크기와 동일 또는 큰 그룹에 대해 상기 세그먼트의 단위로 쓰기를 상기 저장부에 요청하는 것을 특징으로 하는 장치
|
12 |
12
제 11 항에 있어서,상기 제어부는,상기 세그먼트의 크기를 상기 낸드 플래시 메모리의 지우기(erase) 단위인 블록의 크기의 배수로 설정하는 것을 특징으로 하는 장치
|
13 |
13
제 11 항에 있어서,상기 제어부는,해당 데이터의 쓰기 횟수에 비례하고 해당 데이터가 갱신된 후 경과 시간을 나타내는 나이에 반비례하도록 핫니스를 계산하는 것을 특징으로 하는 장치
|
14 |
14
제 11 항에 있어서,상기 제어부는,상기 그룹별 기준값들을 무작위로 설정하는 단계, 모든 세그먼트들을 그 핫니스가 상기 그룹별 기준값들 중 가장 가까운 기준값에 해당하는 그룹으로 분류하는 단계 및 상기 그룹별로 핫니스의 평균을 계산하고 상기 그룹별 기준값들을 상기 그룹별로 계산된 평균으로 갱신하는 단계를 수행하고, 상기 갱신 결과 상기 기준값에 변화가 있을 때까지 또는 상기 계산의 횟수가 기 설정된 최대값에 도달할 때까지 상기 분류하는 단계 및 상기 갱신하는 단계를 반복 수행하는 것을 특징으로 하는 장치
|
15 |
15
제 11 항에 있어서,상기 제어부는 상기 그룹별 기준값들을 결정하기 전에 세그먼트 클리닝을 수행하고,상기 제어부에 의해 수행되는 세그먼트 클리닝은,모든 세그먼트들에 대해 코스트-핫니스(cost-hotness)의 값을 계산하는 단계, 여기서, 상기 코스트-핫니스 값은 해당 세그먼트가 빅팀(victim)으로 선정되기에 적합한 정도를 나타내는 값이고, 상기 빅팀은 해당 무효블록에 쓰기를 할 수 있도록 선정된 세그먼트를 의미함;코스트-핫니스 값이 가장 큰 n개의 세그먼트를 상기 빅팀으로 선정하는 단계; 및상기 빅팀으로 선정된 세그먼트에서 유효블록을 더티 페이지로써 캐시 메모리로 옮긴 후 상기 빅팀을 쓰기 가능한 프리 세그먼트로 변경하는 단계를 포함하는 것을 특징으로 하는 장치
|
16 |
16
낸드 플래시 메모리를 가지는 저장부에 데이터 기록을 제어하는 장치에서 구현되는 기록 매체에 있어서,상기 저장부에 쓰기(write)할 더티 페이지들을 다수의 그룹으로 분류하기 위한 그룹별 기준값들을 결정하는 단계;상기 더티 페이지들 각각에 대해 데이터의 변경 가능성을 나타내는 핫니스(hotness)를 계산하는 단계;상기 더티 페이지들을 상기 계산된 핫니스가 가장 가까운 기준값에 해당하는 그룹으로 분류하는 단계;상기 그룹들 각각의 크기가 상기 저장부에 쓰기 요청을 하는 단위인 세그먼트의 크기보다 큰지 여부를 결정하는 단계; 및상기 세그먼트의 크기와 동일 또는 큰 그룹에 대해 상기 세그먼트의 단위로 쓰기를 상기 저장부에 요청하는 단계를 포함하도록 구성된 기록 매체
|