1 |
1
복수의 페이지로 구성된 메모리 블럭을 복수 개 포함하는 비휘발성 메모리; 및특정 조건을 만족하는 경우, 타임 스템프(timestamp)를 이용하여 상기 메모리 블럭을 저장 순서가 오래된 메모리 블럭부터 순차적으로 스캔하여 제1 임계값 이하의 유효한 페이지 개수를 가지는 n개의 메모리 블럭을 저장 순서가 오래된 메모리 블럭부터 순차적으로 희생 블럭으로 선택하여 프리 블럭을 생성하고, 상기 희생 블럭에 포함된 유효한 복수개의 콜드 페이지를 한번에 병합해서 상기 프리 블럭에 카피백하고, 상기 카피백이 완료된 프리 블럭을 콜드 블럭으로 구분하고, 선택된 희생 블럭에 저장된 데이터를 삭제하여 새로운 프리 블럭을 생성하고, 상기 메모리 블럭에 대한 스캔이 완료되면, 상기 콜드 블럭에 대하여 저장 순서에 따라 순차적으로 스캔하여 제2 임계값 이하의 유효한 페이지 개수를 가지는 k개의 콜드 블럭을 선택하여 희생 블럭으로 결정하고, 상기 k개의 희생 블럭에 포함된 상기 유효한 콜드 페이지를 마지막 콜드 블럭 또는 프리 블럭에 카피백하고, 상기 카피백이 완료된 콜드 블럭 또는 프리 블럭을 콜드 블럭으로 구분하고, 상기 카피백이 완료된 k개의 희생 블럭에 저장된 데이터를 삭제하여 새로운 프리 블럭으로 생성하는 컨트롤러;를 포함하며,상기 제2 임계값은 상기 제1 임계값보다 크게 설정되는, 비휘발성 메모리 장치
|
2 |
2
제1항에 있어서, 상기 컨트롤러는, 설정에 따라 상기 생성된 프리 블럭을 상기 메모리 블럭, 상기 콜드 블럭, 또는 상기 프리 블럭 중 하나로 사용하는, 비휘발성 메모리 장치
|
3 |
3
삭제
|
4 |
4
제1항에 있어서,상기 컨트롤러는, 스캔 위치를 나타내는 헤더를 상기 메모리 블럭에 표시하고, 상기 헤더가 표시된 메모리 블럭부터 다음 스캔을 수행하는, 비휘발성 메모리 장치
|
5 |
5
제4항에 있어서,상기 컨트롤러는, 상기 프리 블럭을 생성한 후, 다시 특정 조건을 만족하는 경우, 상기 헤더가 표시된 메모리 블럭부터 다시 스캔을 수행하여 상기 제1 임계값 이하의 유효한 페이지 개수를 가지는 새로운 n개의 희생 블럭을 선택하는, 비휘발성 메모리 장치
|
6 |
6
제1항에 있어서,상기 컨트롤러는,상기 제1 임계값과 상기 생성할 프리 블럭의 개수를 미리 설정하고,상기 설정된 제1 임계값과 생성할 프리 블럭의 개수에 따라 상기 희생 블럭의 개수를 결정하는, 비휘발성 메모리 장치
|
7 |
7
삭제
|
8 |
8
삭제
|
9 |
9
프리 블럭의 개수가 설정된 개수 이하인 경우, 타임 스템프(timestamp)를 이용하여 메모리 블럭을 저장 순서가 오래된 메모리 블럭부터 순차적으로 스캔하여 제1 임계값 이하의 유효한 페이지 개수를 가지는 n개의 메모리 블럭을 저장 순서가 오래된 메모리 블럭부터 순차적으로 선택하여 희생 블럭으로 결정하는 단계;상기 n개의 희생 블럭에 포함된 유효한 복수개의 콜드 페이지를 한번에 병합해서 상기 프리 블럭에 카피백(copyback)하고 상기 카피백이 완료된 프리 블럭을 콜드 블럭으로 구분하는 단계;상기 n개의 희생 블럭에 저장된 데이터를 삭제하여 새로운 프리 블럭으로 생성하는 단계;상기 메모리 블럭에 대한 스캔이 완료되면, 상기 콜드 블럭에 대하여 저장 순서에 따라 순차적으로 스캔하여 상기 제1 임계값보다 큰 제2 임계값 이하의 유효한 페이지 개수를 가지는 k개의 콜드 블럭을 희생 블럭으로 선택하는 단계;상기 k개의 희생 블럭에 포함된 상기 유효한 페이지를 마지막 콜드 블럭의 빈 페이지 또는 프리 블럭에 카피백하고, 상기 카피백이 완료된 콜드 블럭 또는 프리 블럭을 콜드 블럭으로 구분하는 단계; 및상기 카피백이 완료된 k개의 희생 블럭에 저장된 데이터를 삭제하여 새로운 프리 블럭으로 생성하는 단계;를 포함하는 비휘발성 메모리의 데이터 관리 방법
|
10 |
10
제9항에 있어서, 상기 n개의 메모리 블럭을 선택하는 단계 이후, 상기 메모리 블럭의 스캔 위치를 나타내는 헤더를 상기 스캔이 완료된 메모리 블럭의 다음 메모리 블럭에 표시하는 단계; 를 더 포함하여 구성되는, 비휘발성 메모리의 데이터 관리 방법
|
11 |
11
삭제
|