1 |
1
미리 설정된 비트 수의 데이터로 프로그램하기 위한 프로그램 모드들에 기초하여 데이터들을 저장하는 비휘발성 메모리 장치; 및데이터의 중복 저장 횟수를 나타내는 레퍼런스 카운트 값과 상기 프로그램 모드들 사이의 대응 관계를 나타내는 타겟 프로그램 모드 테이블을 포함하고,호스트 장치로부터의 프로그램 요청이 수신된 경우 및 상기 프로그램 요청에 대응하는 제1 데이터가 상기 비휘발성 메모리 장치에 이미 저장되어 있는 경우, 상기 제1 데이터에 대한 물리적인 프로그램 없이 상기 제1 데이터를 논리적으로 프로그램하는 중복 제거를 수행하고, 상기 제1 데이터에 대하여 상기 호스트 장치로부터의 상기 프로그램 요청 또는 이레이즈 요청이 수신된 경우, 상기 제1 데이터의 중복 저장 횟수를 나타내는 제1 레퍼런스 카운트 값을 제1 값에서 제2 값으로 업데이트하고, 상기 타겟 프로그램 모드 테이블에 기초하여 상기 제1 값에 대응하는 제1 프로그램 모드와 상기 제2 값에 대응하는 제2 프로그램 모드가 서로 다른 타입의 프로그램 모드인 것으로 판단된 경우, 상기 제1 프로그램 모드에 상응하는 제1 비트 수의 데이터로 프로그램 된 상기 제1 데이터를 상기 제2 프로그램 모드에 상응하는 제2 비트 수의 데이터로 프로그램하는 제1 프로그램을 수행하도록 커맨드 및 어드레스를 상기 비휘발성 메모리 장치로 전송하는 스토리지 컨트롤러를 포함하는 스토리지 장치
|
2 |
2
제1 항에 있어서, 상기 프로그램 요청이 수신되어 상기 제1 데이터에 대한 상기 중복 제거가 수행된 경우에 상기 제1 레퍼런스 카운트 값이 증가하고,상기 제2 값이 상기 제1 값보다 큰 경우 및 상기 제2 프로그램 모드와 상기 제1 프로그램 모드가 서로 다른 타입의 프로그램 모드인 경우, 상기 제1 프로그램이 수행되며, 상기 제2 비트 수는 상기 제1 비트 수보다 작은 것을 특징으로 하는 스토리지 장치
|
3 |
3
제2 항에 있어서, 상기 제1 프로그램 모드와 상기 제2 프로그램 모드가 동일한 타입의 프로그램 모드인 경우, 상기 제1 프로그램을 미수행하는 것을 특징으로 하는 스토리지 장치
|
4 |
4
제1 항에 있어서, 상기 이레이즈 요청이 수신되어 상기 제1 데이터에 대한 이레이즈 동작이 수행된 경우에 상기 제1 레퍼런스 카운트 값이 감소하고,상기 제2 값이 상기 제1 값보다 작은 경우 및 상기 제2 프로그램 모드와 상기 제1 프로그램 모드가 서로 다른 타입의 프로그램 모드인 경우, 상기 제1 프로그램이 수행되며, 상기 제2 비트 수는 상기 제1 비트 수보다 큰 것을 특징으로 하는 스토리지 장치
|
5 |
5
제4 항에 있어서, 상기 제2 값이 상기 제1 값보다 작은 경우 및 상기 제1 프로그램 모드와 상기 제2 프로그램 모드가 동일한 타입의 프로그램 모드인 경우, 상기 제1 프로그램을 미수행하는 것을 특징으로 하는 스토리지 장치
|
6 |
6
제1 항에 있어서, 상기 제1 레퍼런스 카운트 값이 상기 제1 값에서 상기 제2 값으로 업데이트되고 상기 제1 프로그램을 수행한 이후에, 상기 제1 데이터에 대하여 상기 호스트 장치로부터의 상기 프로그램 요청 또는 상기 이레이즈 요청이 수신된 경우에, 상기 제1 데이터의 상기 제1 레퍼런스 카운트 값이 상기 제2 값에서 제3 값으로 추가적으로 업데이트되고, 상기 제2 값에 대응하는 상기 제2 프로그램 모드와 상기 제3 값에 대응하는 제3 프로그램 모드가 서로 다른 타입의 프로그램 모드인 경우, 상기 제2 프로그램 모드에 상응하는 상기 제2 비트 수의 데이터로 프로그램 된 상기 제1 데이터를 상기 제3 프로그램 모드에 상응하는 제3 비트 수의 데이터로 프로그램하는 제2 프로그램을 추가적으로 수행하는 것을 특징으로 하는 스토리지 장치
|
7 |
7
제1 항에 있어서, 상기 스토리지 컨트롤러는 상기 호스트 장치로부터 수신되는 논리 어드레스를 상기 비휘발성 메모리 장치의 물리 어드레스로 변환하는 플래시 변환 계층; 상기 중복 제거를 수행하는 중복 제거 관리자; 및 상기 제1 프로그램을 수행하는 프로그램 관리자를 포함하는 것을 특징으로 하는 스토리지 장치
|
8 |
8
제7 항에 있어서, 상기 플래시 변환 계층은 상기 논리 어드레스와 상기 물리 어드레스 사이의 맵핑 관계를 나타내는 맵핑 테이블을 포함하고, 상기 중복 제거 관리자는 상기 물리 어드레스에 대응하는 상기 레퍼런스 카운트 값을 나타내는 레퍼런스 카운트 테이블을 포함하고, 상기 프로그램 관리자는 상기 타겟 프로그램 모드 테이블을 포함하는 것을 특징으로 하는 스토리지 장치
|
9 |
9
제7 항에 있어서, 상기 프로그램 관리자는 상기 제1 레퍼런스 카운트 값이 업데이트된 경우, 상기 타겟 프로그램 모드테이블에 기초하여 상기 제1 프로그램의 수행 여부를 결정하는 레퍼런스 카운트/타겟 프로그램 모드 체커;상기 제1 프로그램을 수행하는 것으로 결정된 경우, 상기 제1 데이터에 대응하는 제1 물리 어드레스 및 상기 제1 데이터를 프로그램하고자 하는 제2 물리 어드레스를 나타내는 제1 타겟 저장 영역 정보를 저장하는 프로그램 대기 리스트; 및 상기 제1 프로그램을 수행하는 것으로 결정된 경우, 상기 제1 데이터를 임시로 저장하는 프로그램 버퍼를 더 포함하는 것을 특징으로 하는 스토리지 장치
|
10 |
10
제9 항에 있어서, 상기 레퍼런스 카운트/타겟 프로그램 모드 체커는상기 제1 프로그램 모드와 상기 제2 프로그램 모드가 서로 다른 타입의 프로그램 모드인 경우, 상기 제1 프로그램을 수행하는 것으로 결정되었음을 나타내는 프로그램 결정 신호를 프로세서로 출력하고, 상기 제1 물리 어드레스 및 상기 제1 타겟 저장 영역 정보를 상기 프로그램 대기 리스트로 출력하는 것을 특징으로 하는 스토리지 장치
|