MLC(multi level cell)들을 포함하는 메모리 영역을 포함하는 불휘발성 메모리 장치의 동작을 제어하는 메모리 컨트롤러의 동작 방법은 액세스될 상기 메모리 영역의 어드레스와 상기 메모리 영역에 프로그램될 데이터를 수신하는 단계와, 상기 어드레스에 기초하여 상기 메모리 영역에 대한 액세스 히스토리 정보를 분석하는 단계와, 상기 분석의 결과에 기초하여, 상기 데이터에 대응되는 제1매핑 데이터를 생성하거나 상기 데이터와 상기 MLC들에 이전에 프로그램된 이전 매핑 데이터에 기초하여 제2매핑 데이터를 생성하는 단계와, 상기 제1매핑 데이터와 상기 제2매핑 데이터 중에서 어느 하나를 포함하는 프로그램 명령을 상기 불휘발성 메모리 장치로 전송하는 단계를 포함한다.