(19) 대한민국특허청 (KR) (12) 공개특허공보 (A) (51) Int. Cl. G06F 12/16 (2006.01) G06F 12/00 (2006.01) (11) 공개번호 (43) 공개일자 10-2007-0088102 2007 년 08 월 29 일 (21) 출원번호 10-2006-0018286 (22) 출원일자 2006년02월24일 심사청구일자 2006년02월24일 (71) 출원인삼성전자주식회사경기도수원시영통구매탄동 416 (72) 발명자신동군서울관악구봉천 6 동 1681-21 김장환서울송파구잠실동 299-8 대훈연립 401 호김정은경기광명시하안 3 동하안주공 12 단지아파트 1211 동 212 호 (74) 대리인정상빈특허법인가산 전체청구항수 : 총 20 항 (54) 비휘발성메모리가캐쉬로사용되는저장장치및이를위한맵핑정보복구방법 (57) 요약 본발명은비휘발성메모리가캐쉬로사용되는저장장치, 및이를위한맵핑정보복구방법에관한것으로서, 더욱상세하게는맵핑정보를안전하게복구할수있는비휘발성메모리가캐쉬로사용되는저장장치및이를위한맵핑정보복구방법에관한것이다. 본발명의실시예에따른비휘발성메모리가캐쉬로사용되는저장장치는, 비휘발성메모리의맵핑정보, 및상기맵핑정보가저장된시점에서할당된제 1 물리블록주소를상기비휘발성메모리에저장하는맵핑정보저장모듈, 상기제 1 물리블록주소로부터현재할당된제 2 물리블록주소까지스캔을수행하는스캔모듈, 및상기스캔결과에따라상기제 1 물리블록주소및상기제 2 물리블록주소사이의맵핑정보를복구하는맵핑정보복구모듈을포함한다. 대표도 도 3 특허청구의범위 청구항 1. - 1 -
비휘발성메모리의맵핑정보, 및상기맵핑정보가저장된시점에서할당된제 1 물리블록주소를상기비휘발성메모리에저장하는맵핑정보저장모듈 ; 상기제 1 물리블록주소로부터현재할당된제 2 물리블록주소까지스캔을수행하는스캔모듈 ; 및 상기스캔결과에따라상기제 1 물리블록주소및상기제 2 물리블록주소사이의맵핑정보를복구하는맵핑정보복구모듈을포함하는비휘발성메모리가캐쉬로사용되는저장장치. 청구항 2. 제 1 항에있어서, 상기비휘발성메모리는, 상기맵핑정보, 및상기제 1 물리블록주소가저장되는맵핑정보저장영역을포함하는비휘발성메모리가캐쉬로사용되는저장장치. 청구항 3. 제 2 항에있어서, 상기맵핑정보저장모듈은, 상기제 1 물리블록주소이후로소정개수의물리블록주소가할당될때마다상기맵핑정보를저장하는비휘발성메모리가캐쉬로사용되는저장장치. 청구항 4. 제 2 항에있어서, 상기맵핑정보는, 상기비휘발성메모리전체의맵핑정보인제 1 맵핑정보 ; 및 업데이트된주소의맵핑정보인제 2 맵핑정보를포함하는비휘발성메모리가캐쉬로사용되는저장장치. 청구항 5. 제 4 항에있어서, 상기제 1 맵핑정보는, 논리블록주소필드, 물리블록주소필드, 및소정주소의업데이트여부를나타내는업데이트필드를포함하는비휘발성메모리가캐쉬로사용되는저장장치. 청구항 6. 제 5 항에있어서, 상기맵핑정보저장모듈은, 상기제 1 맵핑정보를상기맵핑정보저장영역에저장하고, 상기업데이트필드의필드값에근거하여상기제 2 맵핑정보를상기맵핑정보저장영역에추가로저장하는비휘발성메모리가캐쉬로사용되는저장장치. - 2 -
청구항 7. 제 6 항에있어서, 상기맵핑정보저장모듈은, 상기맵핑정보저장영역에서저장공간이없을경우, 상기맵핑정보저장영역을삭제한다음상기제 1 맵핑정보를저장하는비휘발성메모리가캐쉬로사용되는저장장치. 청구항 8. 제 1 항에있어서, 상기스캔모듈은, 할당된소정의물리블록주소의다음에위치한물리블록주소에저장되는검출데이터를통해상기제 2 물리블록주소를판단하고, 상기제 1 물리블록주소로부터상기판단된제 2 물리블록주소까지스캔을수행하는비휘발성메모리가캐쉬로사용되는저장장치. 청구항 9. 제 8 항에있어서, 상기맵핑정보복구모듈은, 상기스캔이수행된물리블록주소및상기스캔이수행된물리블록주소에대응하는논리블록주소를통해맵핑정보를복구하는비휘발성메모리가캐쉬로사용되는저장장치. 청구항 10. 제 9 항에있어서, 소정의물리블록주소에대응하는논리블록주소를해당하는물리블록주소에저장하는캐쉬관리모듈을더포함하는비휘발성메모리가캐쉬로사용되는저장장치. 청구항 11. 비휘발성메모리의맵핑정보, 및상기맵핑정보가저장된시점에서할당된제 1 물리블록주소를상기비휘발성메모리에저장하는단계 ; 상기제 1 물리블록주소로부터현재할당된제 2 물리블록주소까지스캔을수행하는단계 ; 및 상기스캔결과에따라상기제 1 물리블록주소및상기제 2 물리블록주소사이의맵핑정보를복구하는단계를포함하는비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보복구방법. 청구항 12. 제 11 항에있어서, 상기비휘발성메모리는, 상기맵핑정보, 및상기제 1 물리블록주소가저장되는맵핑정보저장영역을포함하는비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보복구방법. - 3 -
청구항 13. 제 12 항에있어서, 상기맵핑정보를저장하는단계는, 상기제 1 물리블록주소이후로소정개수의물리블록주소가할당될때마다상기맵핑정보를저장하는단계를포함하는비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보복구방법. 청구항 14. 제 12 항에있어서, 상기맵핑정보는, 상기비휘발성메모리전체의맵핑정보인제 1 맵핑정보 ; 및 업데이트된주소의맵핑정보인제 2 맵핑정보를포함하는비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보복구방법. 청구항 15. 제 14 항에있어서, 상기제 1 맵핑정보는, 논리블록주소필드, 물리블록주소필드, 및소정주소의업데이트여부를나타내는업데이트필드를포함하는비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보복구방법. 청구항 16. 제 15 항에있어서, 상기맵핑정보를저장하는단계는, 상기제 1 맵핑정보를상기맵핑정보저장영역에저장하는단계 ; 및 상기업데이트필드의필드값에근거하여상기제 2 맵핑정보를상기맵핑정보저장영역에추가로저장하는단계를포함하는비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보복구방법. 청구항 17. 제 16 항에있어서, 상기맵핑정보를저장하는단계는, 상기맵핑정보저장영역에서저장공간이없을경우, 상기맵핑정보저장영역을삭제한다음상기제 1 맵핑정보를저장하는단계를포함하는비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보복구방법. 청구항 18. 제 11 항에있어서, 상기스캔을수행하는단계는, 할당된소정의물리블록주소의다음에위치한물리블록주소에저장되는검출데이터를통해상기제 2 물리블록주소를판단하는단계 ; 및 - 4 -
상기제 1 물리블록주소로부터상기판단된제 2 물리블록주소까지스캔을수행하는단계를포함하는비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보복구방법. 청구항 19. 제 18 항에있어서, 상기맵핑정보를복구하는단계는, 상기스캔이수행된물리블록주소및상기스캔이수행된물리블록주소에대응하는논리블록주소를통해맵핑정보를복구하는단계를포함하는비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보복구방법. 청구항 20. 제 19 항에있어서, 소정의물리블록주소에는대응하는논리블록주소를해당하는물리블록주소에저장하는단계를더포함하는비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보저장방법. 명세서 발명의상세한설명 발명의목적 발명이속하는기술및그분야의종래기술 본발명은비휘발성메모리가캐쉬로사용되는저장장치및이를위한맵핑정보복구방법에관한것으로서, 더욱상세하게는맵핑정보를안전하게복구할수있는비휘발성메모리가캐쉬로사용되는저장장치및이를위한맵핑정보복구방법에관한것이다. 일반적으로, 가전기기, 통신기기, 셋탑박스등의내장형시스템 (Embedded System) 에서는데이터를저장하고처리하기위한저장매체로비휘발성메모리가많이사용되고있다. 비휘발성메모리중에서주로사용되는플래시메모리는전기적으로데이터를삭제하거나다시기록할수있는비휘발성기억소자로서, 마그네틱디스크메모리를기반으로하는저장매체에비해전력소모가적으면서도하드디스크와같은빠른액세스타임 (Access Time) 을가지며크기가작기때문에휴대기기등에적합하다. 최근에는비휘발성메모리를하드디스크드라이브등의저장매체에대한캐쉬로사용하여하드디스크드라이브의전력소모를감소시키고, 비휘발성메모리가캐쉬로사용되는시스템의부팅시간을감소시키고있다. 캐쉬로사용되는비휘발성메모리는호스트가하드디스크드라이브에데이터를저장하고자할때우선비휘발성메모리에데이터가저장되고, 비휘발성메모리에더이상의저장공간이없을때데이터를하드디스크드라이브로이동시키게된다. 따라서, 비휘발성메모리에서데이터를읽고쓸때는하드디스크드라이브의전원을차단할수있기때문에전력소모를감소시킬수있게된다. 이와같이비휘발성메모리를캐쉬로사용하는저장장치는호스트가논리블록주소 (Logical Block Address) 를통해비휘발성메모리의물리블록주소 (Physical Block Address) 에접근할수있도록논리블록주소를물리블록주소로변환해주는맵핑정보가필요하게된다. 일반적으로맵핑정보는하드디스크드라이브동작시에는휘발성메모리에저장되나, 하드디스크드라이브의전원이오프될경우에는비휘발성메모리에저장되었다가하드디스크드라이브에다시전원이공급될때, 휘발성메모리에다시로드되어호스트가맵핑정보를통해소정데이터에접근할수있도록한다. - 5 -
이때, 비휘발성메모리가캐쉬로사용되는저장장치는그특성상예측하지못한갑작스런전원차단이발생할수있다. 이러한경우, 휘발성메모리에저장된맵핑정보가비휘발성메모리로저장되지못하기때문에맵핑정보를복구하는과정이필요하게된다. 일반적으로맵핑정보를복구하는방법으로는, 주로비휘발성메모리전체를스캔하는방법, 및주기적으로맵핑정보를비휘발성메모리에저장하는방법등이사용되고있다. 우선, 비휘발성메모리전체를스캔하는방법은, 도 1 과같이비휘발성메모리전체를스캐닝하여마지막으로할당된물리블록주소의그다음물리블록주소에저장되는검출데이터를찾게된다. 이때, 유효한데이터및유효하지않은데이터를구분하고도 2 와같은맵핑정보를복구하게된다. 이때, 비휘발성메모리전체를스캔하는방법은, 최악의경우검출데이터를찾기위한전체스캔, 및맵핑정보복구를위한전체스캔과같이 2 회의전체스캔을거치게된다. 따라서, 스캔에소요되는시간의증가로인해비휘발성메모리를사용하는시스템부팅시소요되는시간이지연된다는문제점이있다. 한편, 주기적으로맵핑정보를비휘발성메모리에저장하는방법은, 전술한바와같은비휘발성메모리의전체스캔을피하기위하여주기적으로맵핑정보를비휘발성메모리에저장하게된다. 따라서, 비휘발성메모리가캐쉬로사용되는저장장치의다음부팅시에는비휘발성메모리에저장된맵핑정보를통해호스트가비휘발성메모리의데이터에접근할수있게된다. 그러나, 주기적으로맵핑정보를저장하는방법은, 불필요하게맵핑정보를매우빈번하게저장한다는문제점이있다. 다시말해서, 맵핑정보의저장은비휘발성메모리가캐쉬로사용되는저장장치의전원이오프될때만사용되는것이아니라동작중에도이루어지기때문에비휘발성메모리가캐쉬로사용되는저장장치의성능저하의주요한원인으로작용된다는문제점이있다. 한국공개특허 1998-0063018 은컴퓨터의부팅시나리셋시사용자가의도적으로캐시기억장치에데이터를채우게하여처음라인페치 (Line Fetch) 시간을줄일수있는캐시기억장치를개시하고있으나, 이는컴퓨터의부팅시나리셋시캐시기억장치에서주기억장치로부터데이터를라인페치에의해가져올때시간이많이걸리고, 라인페치할시작주소가임의이기때문에최악의경우라인페치를여러번해야하는문제점을해결하기위한것으로, 예상치못한갑작스런전원차단시신속하게맵핑정보를복구하고, 맵핑정보복구를위해필요한저장공간을최소화할수있는방안은제안되고있지않다. 발명이이루고자하는기술적과제 본발명은예상치못한갑작스런전원차단시맵핑정보복구를위해저장하는맵핑정보를최소화하고, 신속한맵핑정보복구를가능케하는비휘발성메모리가캐쉬로사용되는저장장치, 및이를위한맵핑정보복구방법을제공하는데그목적이있다. 본발명의목적은이상에서언급한목적으로제한되지않으며, 언급되지않은또다른목적들은아래의기재로부터당업자에게명확하게이해되어질수있을것이다. 발명의구성 상기목적을달성하기위하여, 본발명의실시예에따른비휘발성메모리가캐쉬로사용되는저장장치는, 비휘발성메모리의맵핑정보, 및상기맵핑정보가저장된시점에서할당된제 1 물리블록주소를상기비휘발성메모리에저장하는맵핑정보저장모듈, 상기제 1 물리블록주소로부터현재할당된제 2 물리블록주소까지스캔을수행하는스캔모듈, 및상기스캔결과에따라상기제 1 물리블록주소및상기제 2 물리블록주소사이의맵핑정보를복구하는맵핑정보복구모듈을포함한다. 또한, 상기목적을달성하기위하여, 본발명의실시예에따른비휘발성메모리가캐쉬로사용되는저장장치를위한맵핑정보복구방법은, 비휘발성메모리의맵핑정보, 및상기맵핑정보가저장된시점에서할당된제 1 물리블록주소를상기 - 6 -
비휘발성메모리에저장하는단계, 상기제 1 물리블록주소로부터현재할당된제 2 물리블록주소까지스캔을수행하는단계, 및상기스캔결과에따라상기제 1 물리블록주소및상기제 2 물리블록주소사이의맵핑정보를복구하는단계를포함한다. 기타실시예들의구체적인사항들은상세한설명및도면들에포함되어있다. 본발명의이점및특징, 그리고그것들을달성하는방법은첨부되는도면과함께상세하게후술되어있는실시예들을참조하면명확해질것이다. 그러나본발명은이하에서개시되는실시예들에한정되는것이아니라서로다른다양한형태로구현될수있으며, 단지본실시예들은본발명의개시가완전하도록하고, 본발명이속하는기술분야에서통상의지식을가진자에게발명의범수를완전하게알려주기위해제공되는것이며, 본발명은청구항의범주에의해정의될뿐이다. 명세서전체에걸쳐동일참조부호는동일구성요소를지칭한다. 이하, 본발명의실시예들에의하여비휘발성메모리가캐쉬로사용되는저장장치및이를위한맵핑정보복구방법을설명하기위한블록도또는처리흐름도에대한도면들을참고하여본발명에대해설명하도록한다. 이때, 처리흐름도도면들의각블록과흐름도도면들의조합들은컴퓨터프로그램인스트럭션들에의해수행될수있음을이해할수있을것이다. 이들컴퓨터프로그램인스트럭션들은범용컴퓨터, 특수용컴퓨터또는기타프로그램가능한데이터프로세싱장비의프로세서에탑재될수있으므로, 컴퓨터또는기타프로그램가능한데이터프로세싱장비의프로세서를통해수행되는그인스트럭션들이흐름도블록 ( 들 ) 에서설명된기능들을수행하는수단을생성하게된다. 이들컴퓨터프로그램인스트럭션들은특정방식으로기능을구현하기위해컴퓨터또는기타프로그램가능한데이터프로세싱장비를지향할수있는컴퓨터이용가능또는컴퓨터판독가능메모리에저장되는것도가능하므로, 그컴퓨터이용가능또는컴퓨터판독가능메모리에저장된인스트럭션들은흐름도블록 ( 들 ) 에서설명된기능을수행하는인스트럭션수단을내포하는제조품목을생산하는것도가능하다. 컴퓨터프로그램인스트럭션들은컴퓨터또는기타프로그램가능한데이터프로세싱장비상에탑재되는것도가능하므로, 컴퓨터또는기타프로그램가능한데이터프로세싱장비상에서일련의동작단계들이수행되어컴퓨터로실행되는프로세스를생성해서컴퓨터또는기타프로그램가능한데이터프로세싱장비를수행하는인스트럭션들은흐름도블록 ( 들 ) 에서설명된기능들을실행하기위한단계들을제공하는것도가능하다. 또한, 각블록은특정된논리적기능 ( 들 ) 을실행하기위한하나이상의실행가능한인스트럭션들을포함하는모듈, 세그먼트또는코드의일부를나타낼수있다. 또, 몇가지대체실행예들에서는블록들에서언급된기능들이순서를벗어나서발생하는것도가능함을주목해야한다. 예컨대, 잇달아도시되어있는두개의블록들은사실실질적으로동시에수행되는것도가능하고또는그블록들이때때로해당하는기능에따라역순으로수행되는것도가능하다. 도 3 은본발명의실시예에따른비휘발성메모리가캐쉬로사용되는저장장치가도시된도면이다. 도시된바와같이, 본발명의실시예에따른비휘발성메모리가캐쉬로사용되는저장장치 (100) 는, 비휘발성메모리 (110), 맵핑정보저장모듈 (120), 스캔모듈 (130), 맵핑정보복구모듈 (140), 및캐쉬관리모듈 (150) 을포함할수있다. 한편, 도 3 에는도시되지않았으나, 본발명의비휘발성메모리가캐쉬로사용되는저장장치 (100) 는하드디스크드라이브 (Hard Disk Drive) 등과같은대용량저장매체를포함할수있으며, 비휘발성메모리 (110) 는대용량저장매체의캐쉬로사용될수있다. 따라서, 호스트가대용량저장매체에소정의데이터를쓰려고하는경우, 데이터는우선비휘발성메모리 (110) 에저장되며비휘발성메모리 (110) 에더이상저장공간이없는경우대용량저장매체로데이터가이동될수있다. 이러한비휘발성메모리 (110) 는도 4 와같이, 호스트가논리블록주소를통해비휘발성메모리 (110) 에저장된데이터에접근할수있도록논리블록주소를물리블록주소로변환해주는맵핑정보가저장되는맵핑정보저장영역 (111), 및데이터가저장되는데이터저장영역 (112) 을포함할수있다. 이때, 맵핑정보는본발명의비휘발성메모리가캐쉬로사용되는저장장치 (100) 가동작중일때는휘발성메모리에저장이되며, 전원오프시비휘발성메모리 (110) 에저장되어본발명의비휘발성메모리가캐쉬로사용되는저장장치 (100) 로다시전원이공급되면, 비휘발성메모리 (110) 에저장된맵핑정보가휘발성메모리로재저장되고, 이맵핑정보에근거하여비휘발성메모리 (110) 의데이터저장영역 (112) 에저장된데이터에접근이가능하게된다. 맵핑정보저장모듈 (120) 은맵핑정보를소정간격으로비휘발성메모리 (110) 의맵핑정보저장영역 (111) 에저장하며, 맵핑정보가저장되는시점에서마지막으로할당된물리블록주소 ( 이하, 제 1 물리블록주소라함 ) 를맵핑정보와함께저장할수있다. 이는, 비휘발성메모리를사용하는시스템의특성상예측하지못한갑작스런전원차단이발생하는경우, 맵 - 7 -
핑정보를복구하는과정이요구되며, 후술할맵핑정보복구모듈 (140) 은맵핑정보저장모듈 (120) 에의해비휘발성메모리 (110) 의맵핑정보저장영역 (111) 에저장된맵핑정보, 및제 1 물리블록주소를통해맵핑정보의복구를수행할수있다. 도 5 는본발명의실시예에따른맵핑정보의구조가도시된도면이다. 도시된바와같이, 본발명의실시예에따른맵핑정보는, 논리블록주소필드 (210), 물리블록주소필드 (220), 및업데이트필드 (230) 를포함할수있다. 논리블록주소필드 (210), 및물리블록주소필드 (220) 는소정논리블록주소에대응하는물리블록주소를나타내며, 업데이트필드 (230) 는소정논리블록주소또는물리블록주소에대응하는물리블록주소또는논리블록주소의업데이트여부를나타낸다. 따라서, 맵핑정보저장모듈 (120) 는초기에는비휘발성메모리 (110) 전체에대한맵핑정보를저장하나, 그이후로는업데이트필드 (230) 에근거하여업데이트된맵핑정보만을비휘발성메모리 (110) 의맵핑정보저장영역 (111) 에저장할수있다. 이하, 본발명의실시예에서비휘발성메모리 (110) 전체에대한맵핑정보를제 1 맵핑정보라칭하고, 업데이트된맵핑정보를제 2 맵핑정보라칭하기로한다. 이때, 전술한도 5 의맵핑정보는제 1 맵핑정보로이해될수있다. 한편, 맵핑정보저장모듈 (120) 는소정개수의물리블록주소가할당될때마다맵핑정보를저장할수있으며, 맵핑정보저장영역 (111) 에더이상맵핑정보를저장할공간이남아있지않는경우에는맵핑정보저장영역 (111) 을삭제하고다시제 1 맵핑정보를저장한후, 제 2 맵핑정보를저장하는과정을반복적으로수행할수있다. 또한, 제 2 맵핑정보를저장한후에는전술한도 5 의업데이트필드 (230) 를초기화하게된다. 이때, 맵핑정보저장모듈 (120) 이소정개수의물리블록주소가할당될때마다맵핑정보를저장하는것은, 너무빈번하게맵핑정보를저장하는경우에는그데이터량이너무커지기때문에본발명의비휘발성메모리가캐쉬로사용되는저장장치 (100) 의부팅시가능한부팅지연시간내에서후술할스캔모듈 (130) 이스캔할물리블록주소마다맵핑정보를저장할수있다. 이는스캔모듈 (130) 이물리블록주소를스캔하는시간이맵핑정보를복구하는데소요되는시간으로이해될수있기때문이다. 스캔모듈 (130) 은본발명의비휘발성메모리가캐쉬로사용되는저장장치 (100) 에서예측하지못한갑작스런전원차단이발생한경우, 맵핑정보저장모듈 (120) 에의해비휘발성메모리 (110) 의맵핑정보저장영역 (111) 에저장된제 1 물리블록주소로부터전원차단이발생한시점에서할당된물리블록주소 ( 이하, 제 2 물리블록주소라함 ) 까지의스캔을수행하여제 1 물리블록주소, 및제 2 물리블록주소사이에위치한물리블록주소에대응하는논리블록주소를스캔하게된다. 이때, 소정물리블록주소가할당된경우, 그다음에위치하는물리블록주소에이를검출하기위한검출데이터가저장되기때문에, 스캔모듈 (130) 은본발명의비휘발성메모리가캐쉬로사용되는저장장치 (100) 의전원차단이발생한시점에서의제 2 물리블록주소를판단할있다. 또한, 스캔모듈 (130) 은소정의물리블록주소가할당될때, 해당물리블록주소의소정영역 ( 예를들어, 스패어 (Spare) 영역 ) 에맵핑된논리블록주소를저장하기때문에소정물리블록주소에맵핑된논리블록주소를스캔할수있다. 이때, 스캔모듈 (130) 이스캔하는제 1 물리블록주소, 및제 2 물리블록주소사이의물리블록주소의개수는전술한맵핑정보저장모듈 (120) 이맵핑정보를저장하는간격인, 제 1 물리블록주소이후로할당된물리블록주소의개수로이해될수있다. 예를들어, 맵핑정보저장모듈 (120) 이 N 개의물리블록주소가할당될때마다맵핑정보를저장하는경우, 스캔모듈 (130) 이스캔하는최대물리블록주소는 N 개가될수있다. 이때, N 개의물리블록주소가할당되기전에본발명의비휘발성메모리가캐쉬로사용되는저장장치 (100) 의전원차단이발생한경우스캔하는물리블록주소의개수는 N 개보다적을수있다. 맵핑정보복구모듈 (140) 은, 스캔모듈 (130) 에의해스캔된결과를통해제 1 물리블록주소가저장된시점으로부터본발명의비휘발성메모리가캐쉬로사용되는저장장치 (100) 의전원차단이발생한시점의제 2 물리블록주소까지의맵핑정보를복구할수있다. 구체적으로, 맵핑정보복구모듈 (140) 은, 스캔모듈 (130) 의스캔결과제 1 물리블록주소, 및제 2 물리블록주소사이에할당된물리블록주소와그에따른논리블록주소를통해본발명의비휘발성메모리가캐쉬로사용되는저장장치 (100) 의전원차단이발생된후다시전원이공급되었을때, 맵핑정보를복구할수있다. - 8 -
이때, 맵핑정보복구모듈 (140) 은, 제 1 물리블록주소로부터제 2 물리블록주소까지의맵핑정보만을복구하면되므로, 기존에마지막으로할당된물리블록주소를판단하고, 판단된물리블록주소로부터전체물리블록주소를스캔하여맵핑정보를복구하는경우에비하여짧은시간안에맵핑정보를복구할수있게된다. 캐쉬관리모듈 (150) 은휘발성메모리에저장된데이터를비휘발성메모리 (110) 의데이터저장영역 (112) 에저장하는역할을수행할수있다. 또한, 캐쉬관리모듈 (150) 은비휘발성메모리 (110) 의소정물리블록주소에데이터를저장할경우, 그에대응하는논리블록주소를해당하는물리블록주소에함께저장할수있다. 이는차후에맵핑정보를복구할경우, 전술한스캔모듈 (130) 이물리블록주소를스캔하는과정에서논리블록주소까지판단할수있도록하기위함이다. 도 6 은본발명의실시예에따른맵핑정보저장방법이도시된도면이다. 이때, 도 6 의맵핑정보저장방법은, 맵핑정보저장모듈 (120) 이비휘발성메모리 (110) 의맵핑정보저장영역 (111) 에비휘발성메모리 (110) 전체맵핑정보인제 1 맵핑정보를저장한경우를예를들어설명하기로한다. 또한, 제 1 맵핑정보와함께제 1 맵핑정보가저장된시점에서의제 1 물리블록주소도함께저장된경우를예를들어설명하기로한다. 도시된바와같이, 본발명의실시예에따른맵핑정보저장방법은, 먼저맵핑정보저장모듈 (120) 이현재시점에서제 1 물리블록주소이후로소정개수의물리블록주소가할당되었는지를판단한다 (S110). 이때, 맵핑정보저장모듈 (120) 이판단하는할당된물리블록주소의개수는 N 개인경우를예를들어설명하기로한다. 이때, 제 1 물리블록주소로부터할당된 N 개의물리블록주소는스캔모듈 (130) 이스캔하는물리블록주소의개수이며, 이는본발명의비휘발성메모리가캐쉬로사용되는장치 (100) 부팅시, 지연가능한시간내에서스캔할수있는최대개수의물리블록개수로이해될수있다. 판단결과제 1 물리블록주소로부터할당된물리블록주소의개수가 N 개이상인경우 (S120), 맵핑정보저장모듈 (120) 은비휘발성메모리 (110) 의맵핑정보저장영역 (111) 에저장공간이남아있는지의여부를판단한다 (S130). 맵핑정보저장영역 (111) 에저장공간이있는경우, 맵핑정보저장모듈 (120) 은제 1 맵핑정보의업데이트필드 (230) 를근거로하여업데이트된맵핑정보인제 2 맵핑정보를맵핑정보저장영역 (111) 에저장한다 (S140). 이후, 맵핑정보저장모듈 (120) 은제 2 맵핑정보가저장된시점에서마지막으로할당된물리블록주소를제 1 물리블록주소로변경하고 (S150), 변경된제 1 물리블록주소를맵핑정보저장영역 (111) 에저장하게된다 (S160). 만일, 전술한 S130 단계에서맵핑정보저장영역 (111) 에저장공간이남아있지않은경우, 맵핑정보저장모듈 (120) 는맵핑정보저장영역 (111) 을삭제하고, 비휘발성메모리 (110) 의전체맵핑정보인제 1 맵핑정보를맵핑정보저장영역 (111) 에저장하게된다 (S170). 이때, S170 단계에서저장되는제 1 맵핑정보는, 업데이트가모두적용된맵핑정보로이해될수있다. 이후, 전술한 S150 및 S160 단계와같이, 현재시점에서마지막으로할당된물리블록주소를제 1 물리블록주소로변경하고, 변경된제 1 물리블록주소를맵핑정보저장영역 (111) 에저장하게된다. 다시말해서, 본발명의실시예에따른맵핑정보저장모듈 (120) 은, 도 7 과같이, 제 1 맵핑정보가저장된시점에서마지막으로할당된제 1 물리블록주소로부터 N 개의물리블록주소가할당된경우, 맵핑정보저장모듈 (120) 은업데이트된제 2 맵핑정보를맵핑정보저장영역 (111) 에현재시점에서할당된물리블록주소를제 1 물리블록주소로변경하여저장할수있다. 도 8 은본발명의실시예에따른맵핑정보복구방법이도시된도면이다. 도시된바와같이, 본발명의실시예에따른맵핑정보복구방법은, 먼저맵핑정보복구모듈 (140) 이맵핑정보저장영역 (111) 으로부터맵핑정보, 및제 1 물리블록주소를판단한다 (S210). 이때, 판단되는맵핑정보는, 제 1 맵핑정보, 및제 2 맵핑정보중적어도하나를포함할수있다. 맵핑정보복구모듈 (140) 은소정의변수 i 를설정하고, 설정된변수 i 에 1 을입력한다 (S220). 이후, 맵핑정보복구모듈 (140) 은추출된제 1 물리블록주소 +i 에해당하는물리블록주소를스캔모듈 (130) 를통해스캔하고 (S230), 스캔결과해당물리블록주소에검출데이터가저장되었는지를판단한다 (S240). - 9 -
판단결과, 해당물리블록주소에검출데이터가저장되지않은경우, 맵핑정보복구모듈 (140) 은맵핑정보를업데이트하고 (S250), 변수 i 에 1 을더하게된다 (S260). 이후, 맵핑정보복구모듈 (140) 은제 1 물리블록주소로부터 i 를 1 씩증가시켜가면서검출데이터가존재하는제 2 물리블록주소가나올때까지맵핑정보를업데이트하는과정 (S230 내지 S260) 을반복적으로수행할수있다. 다시말해서, 본발명의실시예에따른맵핑정보복구모듈 (140) 은, 도 9 과같이, 비휘발성메모리 (110) 의맵핑정보저장영역 (111) 으로부터판단된제 1 물리블록주소로부터순차적으로스캔모듈 (130) 에의해스캔된결과를통해맵핑정보를업데이트할수있으며, 검출데이터가저장된물리블록주소를판단하여그이전물리블록주소인제 2 물리블록주소까지의맵핑정보를업데이트하여맵핑정보를복구할수있다. 이때, 맵핑정보복구모듈 (140) 은물리블록주소이스캔시, 판단되는물리블록주소, 및그에대응하는논리블록주소를통해맵핑정보를복구할수있다. 본발명의실시예에서사용되는용어중 ' 모듈 ' 는소프트웨어또는 Field Programmable Gate Array(FPGA) 또는주문형반도체 (Application Specific Integrated Circuit, ASIC) 과같은하드웨어구성요소를의미하며, 모듈은어떤역할들을수행한다. 그렇지만모듈은소프트웨어또는하드웨어에한정되는의미는아니다. 모듈은어드레싱할수있는저장매체에있도록구성될수도있고하나또는그이상의프로세서들을실행시키도록구성될수도있다. 따라서, 일예로서모듈은소프트웨어구성요소들, 객체지향소프트웨어구성요소들, 클래스구성요소들및태스크구성요소들과같은구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램코드의세그먼트들, 드라버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터구조들, 테이블들, 어레이들, 및변수들을포함한다. 구성요소들과모듈들에서제공되는기능은더작은수의구성요소들및모듈들로결합되거나추가적인구성요소들과모듈들로더분리될수있다. 이상과같이본발명에따른비휘발성메모리가캐쉬로사용되는저장장치및이를위한맵핑정보복구방법을예시된도면을참조로하여설명하였으나, 본명세서에개시된실시예와도면에의해본발명은한정되지않으며그발명의기술사상범위내에서당업자에의해다양한변형이이루어질수있음은물론이다. 발명의효과 상기한바와같은본발명의비휘발성메모리가캐쉬로사용되는저장장치및이를위한맵핑정보복구방법에따르면, 맵핑정보를저장하는횟수를감소시켜비휘발성메모리를캐쉬로사용하는저장장치의수명단축및성능저하을방지하고, 예측하지못한갑작스런전원차단후다시전원이공급되었을때빠른맵핑정보의복구가가능하다는효과가있다. 도면의간단한설명 도 1 은종래의기술에따른비휘발성메모리의전체스캔을통한맵핑정보복구방법이도시된도면. 도 2 는도 1 의맵핑정보복구방법에따라복구된맵핑정보가도시된도면. 도 3 은본발명의실시예에따른비휘발성메모리가캐쉬로사용되는저장장치가도시된도면. 도 4 는본발명의실시예에따른비휘발성메모리가도시된도면. 도 5 는본발명의실시예에따른맵핑정보가도시된도면. 도 6 은본발명의실시예에따른맵핑정보를저장하는방법이도시된도면. 도 7 은본발명의실시예에따른맵핑정보를저장하는간격이도시된도면. 도 8 은본발명의실시예에따른맵핑정보를복구하는방법이도시된도면. 도 9 는본발명의실시예에따른맵핑정보를복구하는구간이도시된도면. < 도면의주요부분에관한부호의설명 > - 10 -
110: 비휘발성메모리 120: 맵핑정보저장모듈 130: 스캔모듈 140: 맵핑정보복구모듈 150: 캐쉬관리모듈 도면 도면 1-11 -
도면 2 도면 3-12 -
도면 4 도면 5-13 -
도면 6 도면 7-14 -
도면 8 도면 9-15 -