1 |
1
가상 스트림 ID(identifier)들을 갖는 쓰기 명령들을 수신하고, 상기 가상 스트림 ID들을 갖는 무시 명령들을 수신하고, 그리고 상기 쓰기 명령들 및 상기 무시 명령들에 기초하여, 상기 가상 스트림 ID들 각각이 할당된 쓰기 데이터의 수명을 판별하는 컨트롤러; 및물리 스트림 ID들에 따라 상기 컨트롤러에 의해 접근되는 불휘발성 메모리들을 포함하되,상기 컨트롤러는 상기 쓰기 데이터의 상기 수명에 기초하여, 상기 가상 스트림 ID들과 상기 물리 스트림 ID들을 맵핑(mapping)하는 스토리지 장치
|
2 |
2
제 1 항에 있어서,상기 가상 스트림 ID들의 개수는 상기 물리 스트림 ID들의 개수보다 큰 스토리지 장치
|
3 |
3
제 1 항에 있어서,상기 컨트롤러는:상기 가상 스트림 ID들 중 제 1 가상 스트림 ID를 갖는 제 1 무시 명령 또는 상기 제 1 가상 스트림 ID를 갖는 제 1 겹쳐 쓰기 명령이 수신되는 시점과 상기 제 1 가상 스트림 ID가 할당된 제 1 쓰기 데이터가 상기 불휘발성 메모리들에 프로그램되는 시점간의 차이를 상기 제 1 쓰기 데이터의 제 1 수명으로 계산하는 가상 스트림 수명 식별부; 및상기 제 1 쓰기 데이터의 상기 제 1 수명과 상기 물리 스트림 ID들 각각이 할당된 블록 데이터의 수명을 비교하고 그리고 비교 결과에 기초하여, 상기 제 1 가상 스트림 ID를 상기 물리 스트림 ID들 중 제 1 물리 스트림 ID로 맵핑하는 가상 스트림 클러스터링(clustering) 관리부를 포함하는 스토리지 장치
|
4 |
4
제 3 항에 있어서,상기 가상 스트림 수명 식별부는, 상기 가상 스트림 ID들 중 제 2 가상 스트림 ID를 갖는 제 2 무시 명령 또는 상기 제 2 가상 스트림 ID를 갖는 제 2 겹쳐 쓰기 명령이 수신되는 시점과 상기 제 2 가상 스트림 ID가 할당된 제 2 쓰기 데이터가 상기 불휘발성 메모리들에 프로그램되는 시점간의 차이를 상기 제 2 쓰기 데이터의 제 2 수명으로 더 계산하고, 그리고상기 가상 스트림 클러스터링 관리부는, 상기 제 2 쓰기 데이터의 상기 제 2 수명과 수명과 상기 물리 스트림 ID들 각각이 할당된 상기 블록 데이터의 상기 수명을 비교하고 그리고 비교 결과에 기초하여, 상기 제 2 가상 스트림 ID를 상기 제 1 물리 스트림 ID로 맵핑하거나 또는 상기 제 2 가상 스트림 ID를 상기 물리 스트림 ID들 중 제 2 물리 스트림 ID로 맵핑하는 스토리지 장치
|
5 |
5
제 4 항에 있어서,상기 가상 스트림 클러스터링 관리부는:상기 제 2 가상 스트림 ID를 상기 제 1 물리 스트림 ID로 맵핑하고 그리고 상기 제 2 쓰기 데이터, 상기 제 1 쓰기 데이터, 및 상기 제 1 물리 스트림 ID가 할당된 제 1 블록 데이터를 클러스터링하거나, 또는상기 제 2 가상 스트림 ID를 상기 제 2 물리 스트림 ID로 맵핑하고 그리고 상기 제 2 쓰기 데이터 및 상기 제 2 물리 스트림 ID가 할당된 제 2 블록 데이터를 클러스터링하는 스토리지 장치
|
6 |
6
제 5 항에 있어서,상기 가상 스트림 클러스터링 관리부는:상기 제 1 블록 데이터의 수명과 상기 제 2 쓰기 데이터의 상기 제 2 수명간의 차이가 상기 제 2 블록 데이터의 수명과 상기 제 2 쓰기 데이터의 상기 제 2 수명간의 차이보다 작으면, 상기 제 2 가상 스트림 ID를 상기 제 1 물리 스트림 ID로 맵핑하거나, 또는상기 제 2 블록 데이터의 상기 수명과 상기 제 2 쓰기 데이터의 상기 제 2 수명간의 차이가 상기 제 1 블록 데이터의 상기 수명과 상기 제 2 쓰기 데이터의 상기 제 2 수명간의 차이보다 작으면, 상기 제 2 가상 스트림 ID를 상기 제 2 물리 스트림 ID로 맵핑하는 스토리지 장치
|
7 |
7
제 3 항에 있어서,상기 가상 스트림 수명 식별부는, 상기 제 1 가상 스트림 ID를 갖는 제 1 쓰기 명령 그리고 상기 제 1 무시 명령과 상기 제 1 겹쳐 쓰기 명령 중 하나에 모두 포함된 논리 어드레스들의 논리 페이지들에 대한 수명들을 판별하고 그리고 상기 논리 페이지들에 대한 상기 수명들의 평균을 계산함으로써 상기 제 1 쓰기 데이터의 상기 제 1 수명을 판별하는 스토리지 장치
|
8 |
8
제 3 항에 있어서,상기 가상 스트림 클러스터링 관리부는, 기준 시간이 경과할 때마다 상기 제 1 가상 스트림 ID와 상기 제 1 물리 스트림 ID를 맵핑하는 스토리지 장치
|
9 |
9
불휘발성 메모리들; 및제 1 물리 스트림 ID(identifier)와 제 2 물리 스트림 ID에 따라 상기 불휘발성 메모리들을 접근하는 컨트롤러를 포함하되,상기 컨트롤러는:가상 스트림 ID들을 갖는 쓰기 명령들을 수신하고,상기 가상 스트림 ID들을 갖는 무시 명령들을 수신하고,상기 쓰기 명령들 및 상기 무시 명령들에 기초하여, 상기 가상 스트림 ID들 각각이 할당된 쓰기 데이터의 수명을 판별하고, 그리고상기 쓰기 데이터의 상기 수명과 상기 제 1 물리 스트림 ID가 할당된 제 1 블록 데이터의 수명간의 제 1 차이 및 상기 쓰기 데이터의 상기 수명과 상기 제 2 물리 스트림 ID가 할당된 제 2 블록 데이터의 수명간의 제 2 차이에 기초하여, 상기 쓰기 데이터와 상기 제 1 블록 데이터 및 상기 제 2 블록 데이터 중 하나를 클러스터링(clustering)하는 스토리지 장치
|
10 |
10
호스트로부터 가상 스트림 ID(identifier)들을 갖는 쓰기 명령들을 수신하는 단계;상기 호스트로부터 상기 가상 스트림 ID들을 갖는 무시 명령들을 수신하는 단계;상기 쓰기 명령들과 상기 무시 명령들에 기초하여 상기 가상 스트림 ID들 각각이 할당된 쓰기 데이터의 수명을 판별하는 단계;상기 쓰기 데이터의 상기 수명에 기초하여 상기 가상 스트림 ID들과 물리 스트림 ID들을 맵핑하는 단계; 및상기 가상 스트림 ID들과 상기 물리 스트림 ID들의 관계를 나타내는 맵핑 테이블에 기초하여, 상기 쓰기 데이터를 상기 물리 스트림 ID들 중 하나에 대응하는 불휘발성 메모리들의 블록들로 프로그램하는 단계를 포함하는 스토리지 장치의 동작 방법
|