또 다른 실시 예 에서 , 일 국면 ( one phase ) ( LM ) , 다음 국면 ( next phase ) ( FOGGY ) 및 다 다음 국면 ( next , next phase ) ( FINE ) 을 포함 하 는 복수 - 국면 프로그래밍 동작 을 사용 하 여 비휘발성 저장 소자 들 의 세트 를 프로그래밍 하 는 방법 이 제공 된다 . 본 방법 은 , 상기 비휘발성 저장 소자 들 의 세트 내 의 타 겟 워드 라인 의 비휘발성 저장 소자 들 에 대해 : 일 국면 ( LM ) 을 수행 하 는 단계 를 포함 하 고 , 여기 서 일 국면 ( LM ) 을 수행 하 는 단계 는 : 상위 타 겟 데이터 상태 들 ( B , C ; D , E , F , G ) 을 갖 는 비휘발성 저장 소자 들 을 소거 상태 로부터 상기 상위 타 겟 데이터 상태 들 의 검증 레벨 들 보다 작 은 중간 검증 레벨 ( VvLM ) 을 갖 는 중간 분포 로 프로그래밍 하 는 단계 를 포함 하 며 , 이 경우 적어도 하나 의 하위 타 겟 데이터 상태 ( A ; A , B , C ) 를 갖 는 비휘발성 저장 소자 들 은 상기 소거 상태 에서 유지 된다 . 본 방법 은 또한 , 검증 레벨 들 ( VvaL , VvbL , VvcL ; VvaL , VvbL , VvcL , VvdL , VveL , VvfL , VvgL ) 의 제 1 세트 를 사용 하 여 다음 국면 ( FOGGY ) 을 수행 하 는 단계 를 포함 하 며 , 여기 서 다음 국면 ( FOGGY ) 을 수행 하 는 단계 는 : ( a ) 상기 적어도 하나 의 하위 타 겟 데이터 상태 를 갖 는 비휘발성 저장 소자 들 중 에서 , 고속 - 프로그래밍 비휘발성 저장 소자 들 과 저속 - 프로그래밍 비휘발성 저장 소자 들 을 구별 하 는 단계 , ( b ) 상기 구별 하 는 단계 에 응답 하 여 : ( i ) 상기 적어도 하나 의 하위 타 겟 데이터 상태 를 갖 는 고속 - 프로그래밍 비휘발성 저장 소자 들 과 상기 적어도 하나 의 하위 타 겟 데이터 상태 를 갖 는 저속 - 프로그래밍 비휘발성 저장 소자 들 을 구분 하 는 프로그래밍 속도 데이터 를 래치 들 의 제 1 세트 에 저장 하 는 단계 , ( ii ) 각각 의 후속 프로그램 펄스 이전 에 상기 래치 들 의 제 1 세트 를 판독 하 는 단계 , 판독 된 정보 에 근거 하 여 ( iii ) 상기 적어도 하나 의 하위 타 겟 데이터 상태 를 갖 는 고속 - 프로그래밍 비휘발성 저장 소자 들 중 적어도 일부 를 프로그래밍 속도 - 기반 의 감속 조치 를 적용 하 여 계속 프로그래밍 하 는 단계 , 그리고 ( iv ) 상기 적어도 하나 의 하위 타 겟 데이터 상태 를 갖 는 저속 - 프로그래밍 비휘발성 저장 소자 들 중 적어도 일부 를 프로그래밍 속도 - 기반 의 감속 조치 를 적용 함 이 없이 계속 프로그래밍 하 는 단계 , 그리고 ( c ) 상기 상위 타 겟 데이터 상태 들 을 갖 는 비휘발성 저장 소자 들 을 계속 프로그래밍 하 는 단계 를 포함 한다 .