(19) 대한민국특허청 (KR) (12) 등록특허공보 (B1) (45) 공고일자 2016년09월09일 (11) 등록번호 10-1653999 (24) 등록일자 2016년08월30일 (51) 국제특허분류 (Int. Cl.) G06F 11/10 (2006.01) G06F 12/02 (2006.01) (52) CPC 특허분류 G06F 11/106 (2013.01) G06F 11/1012 (2013.01) (21) 출원번호 10-2015-0046818 (22) 출원일자 2015 년 04 월 02 일 심사청구일자 (56) 선행기술조사문헌 KR1020140131261 A* KR1020120107126 A* KR1020120136674 A* KR1020130143140 A* 2015 년 04 월 02 일 * 는심사관에의하여인용된문헌 (73) 특허권자 서울시립대학교산학협력단 서울특별시동대문구서울시립대로 163 ( 전농동, 서울시립대학교 ) (72) 발명자 이동희 서울특별시영등포구국제금융로 7 길 32, 비동 20 3 호 ( 여의도동, 장미아파트 ) 박희진 서울특별시동대문구서울시립대로 29 길 80, 203 호 ( 전농동 ) 김재호 서울특별시강북구월계로 21 나길 35-1 ( 미아동 ) (74) 대리인 특허법인엠에이피에스 전체청구항수 : 총 10 항심사관 : 이동하 (54) 발명의명칭낸드플래시기반의스토리지시스템및데이터보존강화방법 (57) 요약 본발명은데이터를기록하는복수의블록을포함하는적어도하나의낸드플래시메모리 ; 및데이터보존강화펌웨어를실행하여데이터를관리하는컨트롤러를포함한다. 이때, 컨트롤러는펌웨어의실행에의해서, 복수의블록중기설정된특정블록의임의의페이지에에러정정을위한패리티정보를기록하고, 소정의타이밍에에러정정코드및패리티정보를이용하여복수의블록에기록된데이터에대하여스크러빙 (Scurbbing) 을수행한다. 대표도 - 도 2-1 -
(52) CPC 특허분류 G06F 11/1016 (2013.01) G06F 12/0246 (2013.01) G06F 12/0253 (2013.01) 이발명을지원한국가연구개발사업 과제고유번호 1345222081 부처명 연구관리전문기관 연구사업명 연구과제명 교육부 기여율 1/1 한국연구재단 일반연구자지원사업 SSD(Solid State Drive) 를위한스토리지소프트웨어의최적화 주관기관 서울시립대학교 연구기간 2014.09.01 ~ 2015.08.31-2 -
명세서청구범위청구항 1 낸드플래시기반의스토리지시스템에있어서, 데이터를기록하는복수의블록을포함하는적어도하나의낸드플래시메모리 ; 및데이터보존강화펌웨어를실행하여상기데이터를관리하는컨트롤러를포함하고, 상기컨트롤러는상기펌웨어의실행에의해서, 상기복수의블록중기설정된특정블록의임의의페이지에에러정정을위한패리티정보를기록하고, 소정의타이밍에에러정정코드및상기패리티정보를이용하여상기복수의블록에기록된데이터에대하여스크러빙 (Scurbbing) 을수행하되, 상기컨트롤러는상기낸드플래시메모리의사용시간과상기낸드플래시메모리를사용함에따라변화하는에러율간의관계를모델링하여산출된세이프주기와, 상기낸드플래시메모리에대한가비지컬렉션주기를비교하고, 상기세이프주기가상기가비지컬렉션주기보다짧은경우, 상기세이프주기에상기임의의페이지를결정하고, 상기결정된페이지에상기패리티정보를기록하는것을특징으로하는낸드플래시기반의스토리지시스템. 청구항 2 제 1 항에있어서, 상기컨트롤러는상기복수의블록을핫블록과콜드블록으로분류하고, 상기복수의블록중상기분류된콜드블록의임의의페이지에상기패리티정보를기록하는것을특징으로하는낸드플래시기반의스토리지시스템. 청구항 3 제 2 항에있어서, 상기컨트롤러는상기스크러빙을수행하는시점의오버프로비저닝 (OP) 공간사이즈를계산하고, 상기계산된사이즈를기초로상기분류된핫블록을위한제 1 오버프로비저닝공간및상기분류된콜드블록을위한제 2 오버프로비저닝공간을설정하는것을특징으로하는낸드플래시기반의스토리지시스템. 청구항 4 제 1 항에있어서, 상기컨트롤러는상기특정블록의복수개의페이지중마지막에위치한하나이상의페이지에상기패리티정보를기록하는것을특징으로하는낸드플래시기반의스토리지시스템. 청구항 5 삭제청구항 6 제 1 항에있어서, 상기컨트롤러는상기가비지컬렉션주기가상기세이프주기보다짧거나동일한경우, 상기가비지컬렉션주기에상기복수의블록에기록된데이터에대하여가비지컬렉션을수행하는것을특징으로하는낸드플래시기반의스토리지시스템. - 3 -
청구항 7 제 1 항에있어서, 상기컨트롤러는상기패리티정보를기록한이후에상기세이프주기를재산출하고, 상기가비지컬렉션주기와비교하여상기소정의타이밍을산출하되, 상기재산출된세이프주기는상기낸드플래시메모리의사용시간과상기기록된패리티에의하여변화하는에러율간의관계를모델링하여산출된것을특징으로하는낸드플래시기반의스토리지시스템. 청구항 8 낸드플래시기반의스토리지시스템의데이터보존강화방법에있어서, 낸드플래시메모리에서데이터를기록하는복수의블록중기설정된특정블록의임의의페이지에에러정정을위한패리티정보를기록하는단계 ; 및소정의타이밍에상기패리티정보를이용하여, 상기복수의블록에기록된데이터에대하여스크러빙 (Scurbbing) 을수행하는단계를포함하되, 상기패리티정보를기록하는단계는, 상기낸드플래시메모리의사용시간과상기낸드플래시메모리를사용함에따라변화되는에러율간의관계를모델링하여세이프주기를산출하는단계 ; 상기산출된세이프주기및상기낸드플래시메모리에대한가비지컬렉션주기를비교하는단계 ; 및상기세이프주기가상기가비지컬렉션주기보다짧은경우, 상기세이프주기에상기임의의페이지를결정하고, 상기결정된페이지에상기패리티정보를기록하는단계를포함하는것을특징으로하는데이터보존강화방법. 청구항 9 제 8 항에있어서, 상기패리티정보를기록하는단계는상기복수의블록을핫블록과콜드블록으로분류하여상기분류된콜드블록의임의의페이지에상기패리티정보를기록하는단계를포함하는것을특징으로하는데이터보존강화방법. 청구항 10 삭제청구항 11 제 8 항에있어서, 상기패리티정보를기록하는단계이후에, 상기세이프주기를재산출하고, 상기가비지컬렉션주기와비교하여상기소정의타이밍을산출하는단계를더포함하되, 상기재산출된세이프주기는상기낸드플래시메모리의사용시간과상기기록된패리티에의하여변화하는에러율간의관계를모델링하여산출된것을특징으로하는데이터보존강화방법. 청구항 12 낸드플래시메모리에있어서, 데이터를기록하는복수의블록중임의의페이지에에러정정을위한패리티정보를기록한특정블록을포함하고, 상기복수의블록에기록된데이터는소정의타이밍에에러정정코드및상기패리티정보를이용하여스크러빙 (Scrubbing) 되는것이고, - 4 -
상기임의의페이지는세이프주기및상기낸드플래시메모리에대한가비지컬렉션주기를비교하여, 상기세이프주기가상기가비지컬렉션주기보다짧은경우, 상기세이프주기동안결정된이후, 상기패리티정보가기록되는것이며, 상기세이프주기는상기낸드플래시메모리의사용시간과상기낸드플래시메모리를사용함에따라변화하는에러율간의관계를모델링하여산출되는것을특징으로하는낸드플래시메모리. 발명의설명 [0001] 기술분야 본발명은낸드플래시기반의스토리지시스템및데이터보존강화방법에관한것이다. [0002] [0003] [0004] [0005] [0006] [0007] 배경기술낸드플래시기반의스토리지는빠른속도및낮은전력소비등의장점으로컴퓨터시스템및모바일디바이스저장장치로활용되고있다. 낸드플래시기반의스토리지는데이터를저장하는최소단위인셀 (cell) 에데이터를저장하는방식에따라 SLC(single level cell), MLC(multi level cell) 및 TLC(triple level cell) 등으로구분할수있다. SLC는낸드플래시메모리에포함된하나의셀에 1비트 (bit) 를저장한다. MLC는하나의셀에 2비트의정보를저장하며, TLC는하나의셀에 3비트의정보를저장한다. SLC에비하여 MLC 및 TLC는저장밀도가높아졌기때문에비용이저렴하다. 그리고 MLC 및 TLC는동일한크기의메모리인경우, SLC에비하여읽기, 쓰기및지우기연산에소요되는시간이적다. 그러나 P/E 횟수 (Program erase cycles) 가제한된낸드플래시기반의스토리지의특성에따라, MLC 및 TLC는 SLC에비하여 P/E 횟수가적어지게되므로, 낸드플래시기반의스토리지의수명이짧아질수있다. 또한, MLC 및 TLC는장기간사용함에따라, 비트에러율 (bit error rate) 이증가하여안정성이낮아진다는단점이있다. 특히낸드플래시기반의스토리지의경우 P/E 횟수가증가하거나데이터의보존기간 (data retention period) 이증가함에따라비트에러율도증가하게된다. 또한, 낸드플래시기반의스토리지에서랜덤읽기에러가흔하게발생할수있으므로데이터무결성 (data integrity) 을유지하기위하여에러정정코드 (Error correction code; ECC) 등이필요하다. 이와관련하여, 한국등록특허공보제10-2009-7009421호 ( 발명의명칭 : 에러억제를위해랜더마이징하는플래시메모리디바이스, 시스템및방법 ) 는비휘발성메모리및오리지널데이터의크기를보존하면서, 비휘발성메모리에저장될오리지널랜드마징하고, 오리지널데이터를메모리에저장하고, 오리지널데이터에대한요청에응답하여, 오리지널데이터를검색하고디랜더마이닝하고, 요청하는엔티티를엑스포팅하는컨트롤러및회로에대하여기술을개시하고있다. 또한, 한국등록특허공보제10-2010-0075352호 ( 발명의명칭 : 불휘발성메모리장치및그것의동작방법 ) 는리드동작시메모리셀블록내에서단위그룹당발생된에러비트의수가에러정정기술을통해보정가능한최대비트수와같거나, 최대비트수보다는적지만정해놓은비트수보다많은경우, 해당메모리셀블록에저장된데이터를다른메모리셀블록으로옮기는카피백동작을한후해당메모리셀블록을사용하지않도록설정하는인밸리드블록을실시하는것에대한기술을개시하고있다. 발명의내용 [0008] [0009] 해결하려는과제본발명의일실시예는데이터보존기간이증가함에따라발생할수있는에러를감소시켜데이터를보존하고, 수명을연장시킬수있는낸드플래시기반의스토리지시스템및데이터보존강화방법을제공하는데그목적이있다. 다만, 본실시예가이루고자하는기술적과제는상기된바와같은기술적과제로한정되지않으며, 또다른기술적과제들이존재할수있다. - 5 -
[0010] [0011] [0012] 과제의해결수단상술한기술적과제를달성하기위한기술적수단으로서, 본발명의제 1 측면에따른낸드플래시기반의스토리지시스템은데이터를기록하는복수의블록을포함하는적어도하나의낸드플래시메모리 ; 및데이터보존강화펌웨어를실행하여데이터를관리하는컨트롤러를포함한다. 이때, 컨트롤러는펌웨어의실행에의해서, 복수의블록중기설정된특정블록의임의의페이지에에러정정을위한패리티정보를기록하고, 소정의타이밍에에러정정코드및패리티정보를이용하여복수의블록에기록된데이터에대하여스크러빙 (Scurbbing) 을수행한다. 또한, 본발명의제 2 측면에따른낸드플래시기반의스토리지시스템의데이터보존강화방법은낸드플래시메모리에서데이터를기록하는복수의블록중기설정된특정블록의임의의페이지에에러정정을위한패리티정보를기록하는단계 ; 및소정의타이밍에패리티정보를이용하여, 복수의블록에기록된데이터에대하여스크러빙 (Scurbbing) 을수행하는단계를포함한다. 그리고본발명의제 3 측면에따른낸드플래시메모리는데이터를기록하는복수의블록중임의의페이지에에러정정을위한패리티정보를기록한특정블록을포함한다. 이때, 복수의블록에기록된데이터는소정의타이밍에에러정정코드및패리티정보를이용하여스크러빙 (Scrubbing) 된다. [0013] [0014] 발명의효과전술한과제해결수단중어느하나에의하면, 본발명의일실시예는소정의타이밍에에러정정코드및패리티정보를이용하여복수의블록이기록된데이터에대하여스크러빙을수행함으로써, 교정불가한데이터보유에러율을감소시키고, 낸드플래시메모리의수명을연장할수있다. 그리고본발명의일실시예는가비지컬렉션주기및세이프주기를비교하여, 가비지컬렉션및스크러빙을수행할수있으므로, 낸드플래시메모리의성능및수명에영향을미칠수있는읽기, 쓰기및지우기연산을줄일수있다. 또한, 본발명의일실시예는스크러빙을수행하기위하여, 에러정정코드및패리티정보를이용하므로, 에러정정코드만을이용하는경우에비하여많은양의데이터의오류를수정할수있다. [0015] 도면의간단한설명 도 1 은낸드플래시기반스토리지시스템에서시간에따른교정불가페이지에러율의변화를도시한예시도이 다. 도 2는본발명의일실시예에따른낸드플래시기반스토리지시스템의구성도이다. 도 3은본발명의일실시예에따른낸드플래시기반의스토리지시스템에서패리티정보기록에대한예시도이다. 도 4는본발명의일실시예에따른낸드플래시기반의스토리지시스템에서패리티정보기록에대한예시도이다. 도 5는본발명의일실시예에따른스크러빙을설명하기위한도면이다. 도 6은본발명의일실시예에따른스크러빙및가비지컬렉션수행의예시도이다. 도 7은본발명의일실시예에따른낸드플래시기반의스토리지시스템의데이터보존강화방법의순서도이다. 도 8은본발명의일실시예에따른낸드플래시기반의스토리지시스템의스크러빙및가비지컬레션수행방법의순서도이다. 도 9는본발명의일실시예에따른낸드플래시메모리의구성도이다. [0016] 발명을실시하기위한구체적인내용아래에서는첨부한도면을참조하여본발명이속하는기술분야에서통상의지식을가진자가용이하게실시할수있도록본발명의실시예를상세히설명한다. 그러나본발명은여러가지상이한형태로구현될수있으며여기에서설명하는실시예에한정되지않는다. 그리고도면에서본발명을명확하게설명하기위해서설명과 - 6 -
관계없는부분은생략하였다. [0017] [0018] [0019] [0020] [0021] [0022] [0023] [0024] [0025] 명세서전체에서, 어떤부분이다른부분과 " 연결 " 되어있다고할때, 이는 " 직접적으로연결 " 되어있는경우뿐아니라, 그중간에다른소자를사이에두고 " 전기적으로연결 " 되어있는경우도포함한다. 또한, 어떤부분이어떤구성요소를 " 포함 " 한다고할때, 이는특별히반대되는기재가없는한다른구성요소를제외하는것이아니라다른구성요소를더포함할수있는것을의미한다. 다음은도 1을참조하여낸드플래시기반스토리지시스템 ( 에서의교정불가에러를설명한다. 도 1은낸드플래시기반스토리지시스템에서시간에따른교정불가페이지에러율 (uncorrectable page error rate) 의변화를도시한예시도이다. 낸드플래시기반스토리지시스템은 P/E 횟수가증가함에따라교정불가페이지에러율이증가할수있다. 또한, 낸드플래시기반스토리지시스템은데이터를보유하는시간 ( 일 ) 이길어짐에따라교정불가페이지에러율이증가할수있다. 이러한현상은 SLC에비하여단일셀에많은데이터를저장하는 MLC 또는 TLC에서더욱심각해질수있다. 특히, 낸드플래시기반스토리지시스템은낸드플래시메모리가지니는고유의특성상덮어쓰기를수행할수없다. 그러므로낸드플래시기반스토리지시스템은쓰기연산을수행할때, 낸드플래시메모리의미사용페이지에데이터를기록한다. 그리고낸드플래시기반스토리지시스템은낸드플래시메모리에이미기록된데이터가업데이트되는경우, 원래데이터가기록되었던페이지를무효화하고, 다른위치의미사용페이지 (free page) 에업데이트된데이터를기록하게된다. 이때, 새로데이터가기록된페이지를유효페이지 (valid pag e) 라고하고, 이전에데이터가기록된이후무효화된페이지를무효페이지 (invalid page) 라고한다. 낸드플래시기반스토리지시스템은무효페이지가증가함에따라, 데이터를저장할공간이부족해질수있다. 그러므로낸드플래시기반스토리지시스템은무효페이지를지우는가비지컬렉션 (garbage collection) 을수행한다. 이때, 낸드플래시기반스토리지시스템은가비지컬렉션을통하여업데이트가자주발생하는핫블록 (hot block) 의에러를정정할수있다. 그러나업데이트가자주일어나지않고, 데이터보존기간이비교적긴콜드블록 (cold block) 의경우에는가비지컬렉션을수행하지않기때문에에러가수정되지않을수있다. 그러므로낸드플래시기반스토리지시스템은콜드블록등을위하여긴데이터보존기간동안데이터를유지할수있는방법으로데이터복구가필요하다. 종래의낸드플래시기반스토리지시스템은이러한문제를해결하기위하여, 주기적으로스크러빙을시행한다. 이때, 스크러빙은에러정정코드기반의기법중하나로주기적인메모리검사를통하여검출되는에러를수정하는것이다. 스크러빙의실행은비교적간단하다. 그러나스크러빙을자주실행하는경우에는낸드플래시기반스토리지시스템의성능이저하되고, 수명을단축할수있다는단점이있다. 또한, 도 1을참조하면, 종래의낸드플래시기반스토리지시스템에서는 P/E 횟수가증가함에따라가비지컬렉션및스크러빙등의기법을수행하더라도시간이지남에따라데이터의교정불가페이지에러가증가할수있다. 특히, 종래의낸드플래시기반스토리지시스템은교정불가페이지에러의임계값으로알려져있는 10xE -15 을초과하는경우, 낸드플래시메모리및시스템의안정성을보장할수없을수있다. 그러므로낸드 플래시기반스토리지시스템의데이터보존강화장치및방법이필요하다. [0026] [0027] [0028] [0029] [0030] 다음은도 2 내지도 8을참조하여본발명의일실시예에따른낸드플래시기반의스토리지시스템 (200) 을설명한다. 도 2는본발명의일실시예에따른낸드플래시기반의스토리지시스템 (200) 의구성도이다. 본발명의일실시예에따른낸드플래시기반스토리지시스템 (200) 은하나이상의낸드플래시메모리 (210), 메모리 (220) 및컨트롤러 (230) 를포함한다. 이때, 낸드플래시메모리 (210) 는데이터를기록하는복수의블록을포함한다. 그리고낸드플래시메모리 (210) 에서블록은데이터가저장되는기본단위인복수개의페이지를포함한다. 낸드플래시메모리 (210) 는페이지단위로읽고쓰기연산을수행하며, 블록단위로지우기연산을수행한다. 메모리 (220) 에는데이터보존강화펌웨어 (firmware) 가저장된다. 여기에서, 메모리 (220) 는전원이공급되지않아도저장된정보를계속유지하는비휘발성저장장치및저장된정보를유지하기위하여전기가필요한휘발 - 7 -
성저장장치를통칭하는것이다. 또한, 메모리 (220) 는별도의장치로낸드플래시기반스토리지시스템 (200) 에포함될수있으며, 컨트롤러 (230) 와통합되어구현될수있다. [0031] [0032] [0033] [0034] [0035] [0036] [0037] [0038] [0039] [0040] [0041] [0042] 컨트롤러 (230) 는낸드플래시기반스토리지시스템 (200) 을하드디스크드라이브와같은디스크드라이브처럼사용할수있도록일반적인파일시스템 (file system) 인터페이스 (interface) 를제공한다. 이때, 컨트롤러 (230) 는 SoC(system on chip) 으로컴퓨터장치와독립적으로낸드플래시메모리 (210) 를제어할수있다. 혹은컨트롤러 (230) 는플래시변환계층 (flash translation layer; FTL) 을통해낸드플래시메모리 (210) 를제어할수있다. 이때, 플래시변환계층은기존의운영체제의파일시스템이하드디스크드라이브와달리물리적인섹터 (sector) 가없는낸드플래시메모리 (210) 을사용하기위하여, 물리적인블록과페이지를논리적인섹터구조로변환할수있다. 컨트롤러 (230) 는메모리 (220) 에저장된데이터보존강화펌웨어를실행하여, 낸드플래시메모리 (210) 에기록되는데이터를관리한다. 이를위하여, 먼저컨트롤러 (230) 는낸드플래시메모리 (210) 의복수개의블록중기설정된특정블록의임의의페이지에에러정정을위한패리티 (parity) 정보를기록한다. 그리고컨트롤러 (230) 는소정의타이밍에기록된패리티정보및에러정정코드에기초하여복수의블록에기록된데이터에대하여, 스크러빙을수행한다. 이때, 패리티정보가저장되는특정블록은콜드 (cold) 블록이될수있다. 블록은핫 (hot) 블록과콜드블록으로구분할수있다. 이때, 핫블록은데이터가자주업데이트되므로, 콜드블록에비하여저장된데이터의보존기간이짧다. 그리고핫블록은잦은업데이트에의하여발생할수있는무효페이지에대한가비지컬렉션을수행할수있는가능성이크므로, 가비지컬렉션을통하여별도의패리티정보없이에러를수정할수있다. 그러므로컨트롤러 (230) 는저장된데이터의보존기간이비교적길고, 가비지컬렉션을수행할가능성이적은콜드블록에패리티정보를기록할수있다. 그리고컨트롤러 (230) 는소정의타이밍에기록된패리티정보및에러정정코드에기초하여복수의블록에기록된데이터에대하여, 스크러빙을수행할수있다. 여기에대해서도 3 및도 4를참조하여설명한다. 도 3 및도 4는본발명의일실시예에따른낸드플래시기반스토리지시스템 (200) 에서패리티정보기록에대한예시도이다. 도 3을참조하면, 낸드플래시기반스토리지시스템 (200) 은 4개의낸드플래시메모리 (310 내지 340) 를포함한다. 또한, 낸드플래시기반스토리지시스템 (200) 은호스트인터페이스 (host interface; 300) 를통해컴퓨팅장치와같은호스트 (host) 와데이터를주고받을수있다. 이때, 호스트인터페이스 (300) 는낸드플래시기반스토리지시스템 (200) 과연결된컴퓨터장치의 IDE(integrated driver electronics), PCI(peripheral component interconnect BUS), PATA(parallel ATA), SATA(serial ATA) 및 USB(universal serial bux) 와같은컴퓨팅버스 (computing bus) 가될수있다. 또한, 호스트인터페이스 (300) 는낸드플래시기반스토리지시스템 (200) 과네트워크를통하여연결된컴퓨터장치의네트워크모듈이될수있다. 낸드플래시메모리 (310 내지 340) 는하나이상의블록을포함할수있다. 또한, 블록은하나이상의페이지를포함할수있다. 예를들어도 3을참조하면, 제 1 낸드플래시메모리 (310) 는하나이상의블록을포함하며, 각각의블록에는물리적블록번호인 PBN(physical block number) 를부여할수있다. 또한, 각각의블록은하나이상의페이지를포함하며, 각각의페이지는물리적페이지번호인 PPN(physical block number) 를부여할수있다. 그리고낸드플래시기반스토리지시스템 (310) 에포함된컨트롤러 (230) 는미리정의된핫 / 콜드블록분류기준에따라, 각각의낸드플래시메모리 (210) 에포함된블록을핫블록또는콜드블록으로분류할수있다. 이때, 미리정의된핫 / 콜드블록에대한분류기준은낸드플래시기반스토리지시스템 (200) 에기본적 (default) 으로미리설정된값일수있으며, 낸드플래시기반스토리지시스템 (200) 의사용자에의하여미리설정된값일수있다. 그리고미리정의된핫 / 콜드블록분류기준은호스트에의해서정의될수있다. 예를들어, 컨트롤러 (230) 는미리정의된핫 / 콜드블록에대한분류기준에따라, 3개이상유효페이지를포함하는블록을핫블록으로분류하고, 그렇지않은블록을콜드블록으로분류할수있다. 도 3을참조하면, 제 1 낸드플래시메모리 (310) 의 'PBN 0 블록 '(P300) 은무효페이지가포함되지않으며, 제 2 낸드플래시메모리 (320) 의 'PBN 0 블록 '(P310) 은하나의무효페이지를포함한다. 그러므로컨트롤러 (230) 는 - 8 -
미리정해진핫 / 콜드분류기준에따라, 제 1 낸드플래시메모리 (310) 및제 2 낸드플래시메모리 (320) 의각 각 'PBN 0 블록 '(P300, P310) 을각각콜드블록으로분류할수있다. [0043] [0044] [0045] [0046] [0047] [0048] [0049] [0050] [0051] [0052] [0053] [0054] [0055] 또한, 제 3 낸드플래시메모리 (330) 의 'PBN 0 블록 '(P320) 및제 4 낸드플래시메모리 (340) 의 'PBN 0 블록 '(P330) 은각각세개의무효페이지를포함하고있다. 그러므로컨트롤러 (230) 는미리정해진핫 / 콜드분류기준에따라, 제 3 낸드플래시메모리 (330) 및제 4 낸드플래시메모리 (340) 의각각 'PBN 0 블록 '(P320, P330) 을각각핫블록으로분류할수있다. 도 4를참조하면, 컨트롤러 (230) 는콜드블록으로분류된제 1 낸드플래시메모리 (310) 의 'PBN 0 블록 '(P401) 및제 2 낸드플래시메모리 (320) 의 'PBN 0 블록 '(P411) 에대하여각각블록에포함된복수개의페이지중 'PPN 0 페이지 '(P400, P410) 를선택하여패리티정보를기록할수있다. 이후, 컨트롤러 (230) 는스크러빙을수행하여, 에러를정정하기위하여 'PPN 0 페이지 '(P400, P410)(P400, P410) 에기록된패리티정보를이용할수있다. 이때, 컨트롤러 (230) 는수직스트라이핑 (vertical striping) 에기초하여패리티를기록할수있다. 그러므로패리티정보는패리티정보를기록하고자하는블록의복수개의페이지중마지막에위치한하나이상의페이지에기록될수있다. 또한, 컨트롤러 (230) 는핫블록으로분류된제 3 낸드플래시메모리 (330) PBN 0 블록 (P320) 및제 4 낸드플래시메모리 (340) 의 'PBN 0 블록 '(P330) 의경우, 패리티정보를기록하지않을수있다. 그러므로컨트롤러 (23 0) 는미사용블록에데이터를기록할수있다. 한편, 컨트롤러 (230) 는낸드플래시메모리 (210) 에패리티정보를기록한다음, 소정의타이밍에기록된패리티정보및에러정정코드를이용하여낸드플래시메모리 (210) 의복수의블록에기록된데이터에대하여스크러빙을수행한다. 이때, 스크러빙은앞에서설명한것과같이, 낸드플래시기반스토리지시스템 (200) 의데이터보존기간이길어짐에따라발생하는에러에대한해결책이될수있다. 하지만, 스크러빙은읽기쓰기량의증가에따른낸드플래시기반스토리지시스템 (200) 의수명을단축하게할수있다는단점이있다. 그러므로본발명의일실시예에따른컨트롤러 (230) 는스크러빙을수행하기전, 가비지컬렉션이수행할가능성이스크러빙보다높은경우에는스크러빙을수행하지않고, 가비지컬렉션을먼저수행한다. 만약, 가비지컬렉션이수행될가능성이스크러빙에비하여낮은경우, 컨트롤러 (230) 는스크러빙을수행한다. 이를위하여, 컨트롤러 (230) 는패리티정보를기록하기전에낸드플래시메모리 (210) 에대한가비지컬렉션주기및세이프주기를산출하고, 산출된가비지컬렉션주기및세이프주기에따라스크러빙또는가비지컬렉션을수행할수있다. 구체적으로컨트롤러 (230) 는낸드플래시메모리 (210) 에패리티정보를기록하기전에먼저가비지컬렉션주기및세이프주기를산출한다. 이때, 세이프주기는스크러빙을수행하지않은상태에서데이터보존에러를허용할수있는시간에기초하여산출된다. 그러므로컨트롤러 (230) 는낸드플래시메모리 (210) 의사용시간과낸드플래시메모리 (210) 를사용함에따라변화하는에러율간의관계를모델링하여세이프주기를산출한다. 또한, 가비지컬렉션주기는낸드플래시메모리 (210) 에대한가비지컬렉션이수행되기까지남은시간에기초하여산출된다. 그러므로컨트롤러 (230) 는낸드플래시메모리 (210) 에서사용중인블록의개수및일별로업데이트되는블록의개수에기초하여산출될수있다. 세이프주기및가비지컬렉션주기의비교결과, 세이프주기가가비지컬렉션주기보다짧은경우, 컨트롤러 (230) 는세이프주기를소정의타이밍으로산출한다. 이와반대로, 세이프주기가가비지컬렉션주기보다길거나같은경우, 컨트롤러 (230) 는가비지컬렉션주기를소정의타이밍으로산출한다. 그리고컨트롤러 (230) 는산출된소정의타이밍에따라, 스크러빙또는가비지컬렉션을수행한다. 가비지컬렉션주기및세이프주기의비교결과, 세이프주기가짧은경우, 컨트롤러 (230) 는세이프주기에스크러빙을수행할수있다. 이때, 컨트롤러 (230) 는낸드플래시기반스토리지시스템 (200) 의성능및수명향상을위하여바로스크러빙을수행하지않고, 패리티정보를기록하여세이프주기를연장할수있다. 즉, 세이프주기에도달하면, 컨트롤러 (230) 는스크러빙을수행하지않고, 임의의페이지에패리티정보기록을수행하여, 스크러빙이수행되는것을미룰수있다. 또한, 패리티를기록한다음, 컨트롤러 (230) 는패리티정보및 - 9 -
에러정정코드에기초하여세이프주기를재산출하고, 다시가비지컬렉션주기와비교할수있다. [0056] [0057] [0058] [0059] 다시재산출된세이프주기및가비지컬렉션주기를비교하여, 재산출된세이프주기가짧은경우, 컨트롤러 (230) 는재산출된세이프주기에에러정정코드및기록된패리티정보에기초하여스크러빙을수행할수있다. 또한, 세이프주기또는재산출된세이프주기와비교하여가비지컬렉션주기가짧은경우, 컨트롤러 (230) 는낸드플래시메모리 (210) 에포함된복수의블록에기록된데이터에대하여가비지컬렉션을수행할수있다. 이때, 가비지컬렉션은앞에서설명한것과같이, 낸드플래시메모리 (210) 에포함된무효페이지또는무효블록에기록된데이터를지우는것이다. 스크러빙및세이프주기는도 5를참조하여상세하게설명한다. 도 5는본발명의일실시예에따른스크러빙을설명하기위한도면이다. 본발명의일실시예에따른세이프주기는교정불가페이지에러율 (UPER) 이미리정해진임계값에가까워질때까지소요되는시간을모델링하여산출될수있다. 이때, 미리정해진임계값은하드디스크드라이브에대 한미국표준으로알려져있는 10xE -15 가될수있다. [0060] [0061] [0062] [0063] 컨트롤러 (230) 는미리정해진임계값을이용하여세이프주기를산출할수있다. 예를들어, 세이프주기는낸드플래시기반스토리지시스템 (200) 의 P/E 횟수에대한허용된교정불가페이지에러율임계값의비로산출될수있다. 세이프주기에도달한후, 컨트롤러 (230) 는낸드플래시메모리 (210) 에포함된블록에대한패리티정보를기록하고, 스크러빙이수행되는세이프주기를재산출할수있다. 이와같이, 컨트롤러 (230) 는패리티정보를활용하여낸드플래시기반스토리지시스템 (200) 의데이터보유에러를감소시키고, 사용공간절약및수명연장을위하여, 스크러빙대상이되는블록에대하여패리티정보를기록하고, 세이프주기를연장할수있다. 이때, 패리티정보는스크러빙을수행한블록의임의의페이지에기록될수있다. 예를들어, 패리지정보는패리티정보를기록하고자하는블록의복수개의페이지중마지막에위치한하나이상의페이지에기록될수있다. 또한, 컨트롤러 (230) 는패리티정보기록을수행한다음, 세이프주기를재산출하기위하여에러정정코드및패리티정보를이용할수있다. 재산출되는세이프주기는낸드플래시메모리 (210) 의사용시간과패리티정보가기록된이후의교정불가페이지에러율간의관계를모델링하여산출할수있다. 예를들어, 스크러빙에의하여페이지가수정된이후의변화하는에러율은도 5의에러정정코드및패리티정보를적용하는경우에대 한교정불가페이지에러율 ( ) 이될수있다. [0064] 컨트롤러 (230) 는세이프주기가재산출되면, 재산출된세이프주기및가비지컬렉션주기를비교하여다시 소정의타이밍을산출할수있다. 그리고산출된소정의타이밍에따라스크러빙또는가비지컬렉션을수행할 수있다. [0065] 이때, 스크러빙되는데이터의크기 ( ) 는 1 일에쓰기요청이발생하는양및세이프주기동안데이터 가갱신되지않을확률에기초하여도출할수있다. 스크러빙되는데이터의크기는수학식 1 과같다. 수학식 1 [0066] [0067] 이때, D write 는 1 일에쓰기요청이발생하는양이다. 그리고 s t 을확률이다. 는세이프주기 t 일동안데이터가갱신되지않 [0068] 재산출된세이프주기와가비지컬렉션주기의비교에따른스크러빙수행은도 6 을참조하여설명한다. - 10 -
[0069] [0070] [0071] [0072] [0073] [0074] [0075] 도 6은본발명의일실시예에따른스크러빙및가비지컬렉션수행의예시도이다. 도 6의 (a) 에서처럼가비지컬렉션주기가재산출된세이프주기보다짧은경우, 컨트롤러 (230) 는가비지컬렉션주기에도달하면, 가비지컬렉션을수행할수있다. 그러나도 6의 (b) 와같이재산출된세이프주기가가비지컬렉션주기보다짧은경우, 소정의타이밍은재산출된세이프주기가될수있다. 그리고컨트롤러 (230) 는재산출된세이프주기에도달하면, 스크러빙을수행할수있다. 한편, 도 6의 (a) 에서처럼가비지컬렉션을수행하는경우에는미사용블록풀에포함된블록 (P600) 이도 6의 (b) 의스크러빙을수행한경우의미사용블록풀에포함된블록 (P610) 보다적을수있다. 그러므로스크러빙을수행하는경우에는미사용블록이증가할수있다. 이러한미사용블록을포함하는공간을오버프로비저닝 (over provisioning; OP) 공간이라고할수있다. 이때, 오버프로비저닝공간은낸드플래시기반의스토리지시스템 (200) 이원활하게작동할수있도록미리마련한예비공간이다. 낸드플래시기반스토리지시스템 (200) 에많은오버프로비저닝공간이차지하게되는경우낸드플래시기반의스토리지시스템 (200) 은가비지컬렉션또는스크러빙을원활하게수행할수있지만, 공간이낭비되게될수있다. 그러므로컨트롤러 (230) 는최적의오버프로비저닝공간을설정하여야한다. 컨트롤러 (230) 는최적의오버프로비저닝공간을설정하기위하여, 스크러빙을수행할때, 스크러빙을수행하는시점의오버프로비저닝 (over provisioning; OP) 공간사이즈를계산할수있다. 그리고컨트롤러 (230) 는계산된사이즈를기초로분류된핫블록을위한제 1 오버프로비저닝공간및분류된콜드블록을위한제 2 오버프로비저닝공간을설정할수있다. 이때, 제 1 오버프로비저닝공간은사용중인블록의개수에기초하여산출될수있다. 또한, 제 2 오버프로비저닝공간은스크러빙에사용되는블록의개수에기초하여산출될수있다. 이때, 최적의오버프로비저닝공간을설정하기위한오버프로비저닝공간의비율 (a effective ) 은수학식 2와 같다. 수학식 2 [0076] [0077] [0078] [0079] 이때, 수학식 2에서 u scrub 는스크러빙을수행하기위하여선택되는데이터블록의사용량이다. 한편, 본발명의일실시예에따른낸드플래시기반의스토리지시스템 (200) 은스크러빙을수행하기까지유예기간을제공할수있으므로, 기록증폭계수 (write amplification factor; WAF) 를낮출수있다. 이때, 기록증폭계수는낸드플래시기반의스토리지시스템 (200) 의성능및수명을결정하는것으로, 기록증폭계수가작아질수록성능및수명이향상될수있다. 낸드플래시기반의스토리지시스템 (200) 에서스크러빙및가비지컬렉션수행에따른기록증폭계수 WAF는핫 / 콜드블록에대한스크러빙및가비지컬렉션수행에따라각각산출되며, 수학식 3 내지수학식 6과같다. [0080] 이때, 수학식 3 은핫블록및콜드블록에가비지컬렉션을수행했을경우에대한기록증폭계수를나타낸다. 이때, 핫블록의가비지컬렉션에대한기록증폭계수는 WAF hotgc 이고, 콜드블록의가비지컬렉션에대한기록 증폭계수는 WAF coldgc 이다. - 11 -
수학식 3 [0081] [0082] [0083] 그리고수학식 4는핫블록에가비지컬렉션을수행하고, 콜드블록에스크러빙을수행한경우에대한기록증폭계수를나타낸다. 그리고수학식 5는콜드블록에가비지컬렉션을수행하고, 핫블록에스크러빙을수행한경우에대한기록증폭계수를나타낸다. 이두경우에서기록증폭계수는최적의오버프로비저닝공간의크기에비례할수있다. 핫블록에가비지컬렉션을수행하고, 콜드블록에스크러빙을수행한경우에대하여예를들어설명하면, 콜드블록의오버프로비저닝공간이최적의오버프로비저닝공간보다크게되면, 낸드플래시기반의스토리지시스템 (200) 은핫블록의오버프로비저닝공간을튜닝하여, 성능을향상시킬수있다. 그러므로이경우의기록증폭계수는수학식 4와같으며, 반대의경우는수학식 5와같다. 수학식 4 [0084] 수학식 5 [0085] [0086] 이때, 및는핫블록및콜드블록각각에최적의오버프로비저닝공간을튜닝 한경우에대한기록증폭계수를의미한다. 또한, WAF hot_scrub 및 WAF cold_scrub 는핫블록및콜드블록각각에스 크러빙을수행한경우에대한기록증폭계수이다. [0087] 마지막으로수학식 6 은핫블록및콜드블록에모두스크러빙을수행한경우에대한기록증폭계수이다. 이 때, 핫블록및콜드블록의오버프로비저닝공간은스크러빙을위한데이터복사를위하여활용될수있다. 그러므로수학식 6 에서기록증폭계수는오버프로비저닝공간을고려하지않을수있다. 수학식 6 [0088] [0089] [0090] [0091] 다음은도 7 및도 8을참조하여본발명의일실시예에따른낸드플래시기반의스토리지시스템 (200) 의데이터보존강화방법을설명한다. 도 7은본발명의일실시예에따른낸드플래시기반의스토리지시스템 (200) 의데이터보존강화방법의순서도이다. 또한, 도 8은본발명의일실시예에따른낸드플래시기반의스토리지시스템 (200) 의스크러빙및가비지컬렉션수행방법의순서도이다. 낸드플래시기반의스토리지시스템 (200) 은낸드플래시기반스토리지시스템 (200) 에포함된낸드플래시메모리 (210) 에서데이터를기록하는복수의블록중기설정된특정블록의임의의페이지에에러정정을위한패리티정보를기록한다 (S700). 그리고낸드플래시기반의스토리지시스템 (200) 은소정의타이밍에에러정정코 - 12 -
드및패리티정보를이용하여, 복수의블록에기록된데이터에대하여스크러빙 (Scurbbing) 을수행한다 (S710). [0092] [0093] [0094] [0095] [0096] [0097] [0098] [0099] [0100] [0101] [0102] [0103] [0104] [0105] [0106] [0107] 이때, 패리티정보를저장하는특정블록은핫블록에비하여, 업데이트가자주발생하지않아가비지컬렉션을수행할가능성이적은콜드블록일수있다. 이를위하여, 낸드플래시기반의스토리지시스템 (200) 은미리정의된핫 / 콜드블록분류기준에따라, 복수의블록을핫블록및콜드블록으로분류할수있다. 이때, 미리정의된핫 / 콜드블록분류기준은낸드플래시기반의스토리지시스템 (200) 또는낸드플래시기반의스토리지시스템 (200) 과데이터를교환하는컴퓨팅장치에의하여설정될수있다. 그리고스크러빙을수행하는소정의타이밍은낸드플래시기반의스토리지시스템 (200) 이스크러빙을수행하기까지남은세이프주기및가비지컬렉션을수행하기까지남은가비지컬렉션주기에기초하여산출될수있다. 이때, 세이프주기는낸드플래시기반의스토리지시스템 (200) 은낸드플래시메모리 (210) 의사용시간및낸드플래시메모리 (210) 를사용함에따라변화되는에러율간의관계를모델링하여산출할수있다. 그리고가비지컬렉션주기는낸드플래시메모리 (210) 에대한가비지컬렉션이수행되기까지남은시간에기초하여산출된다. 스크러빙및가비지컬랙션을수행하는과정을구체적으로살펴보면, 먼저낸드플래시기반의스토리지시스템 (200) 은세이프주기및가비지컬렉션주기를산출할수있다 (S800). 그리고낸드플래시기반의스토리지시스템 (200) 은세이프주기및가비지컬렉션주기를비교할수있다 (S810, S820). 두주기의비교결과세이프주기가가비지컬렉션주기보다짧은경우, 낸드플래시기반의스토리지시스템 (200) 은세이프주기에도달하면, 스크러빙을수행하지않고, 임의의페이지에패리티정보를기록할수있다 (S830). 패리티정보를기록한다음, 낸드플래시기반의스토리지시스템 (200) 은세이프주기를재산출할수있다 (S840). 이때, 재산출되는세이프주기는에러정정코드및패리티정보를이용하여산출될수있다. 그리고세이프주기가재산출되면, 낸드플래시기반의스토리지시스템 (200) 은가비지컬렉션주기와재산출된세이프주기를다시비교할수있다 (S850). 재산출된세이프주기와가비지컬렉션주기를비교하여, 재산출된세이프주기가가비지컬렉션주기보다짧은경우, 낸드플래시기반의스토리지시스템 (200) 은재산출된세이프주기를소정의타이밍으로산출할수있다. 그리고낸드플래시기반의스토리지시스템 (200) 은소정의타이밍에에러정정코드및패리지정보에기초하여스크러빙을수행할수있다 (S860). 그리고세이프주기및재산출된세이프주기가가비지컬렉션주기보다길거나같은경우, 낸드플래시기반의스토리지시스템 (200) 은가비지컬렉션주기에가비지컬렉션을수행할수있다 (S870). 다음은도 9를참조하여본발명의일실시예에따른낸드플래시메모리 (210) 를설명한다. 도 9는본발명의일실시예에따른낸드플래시메모리 (210) 의구성도이다. 본발명의일실시예에따른낸드플래시메모리 (210) 는하나이상의블록 (910) 을포함한다. 또한, 하나이상의블록 (910) 은각각하나이상의페이지 (911) 를포함한다. 낸드플래시메모리 (210) 는데이터를기록하는복수의블록 (910) 중임의의페이지에에러정정을위한패리티정보를기록한특정블록을포함한다. 이때, 특정블록은핫블록에비하여, 업데이트가자주발생하지않아가비지컬렉션을수행할가능성이작은콜드블록일수있다. 핫블록은콜드블록에비하여저장된데이터보존기간이짧다. 그리고핫블록은잦은업데이트에의하여가비지컬렉션을수행할가능성이크다. 그러므로핫블록은가비지컬렉션을통하여별도의패리티정보없이에러를수정할수있다. 즉, 낸드플래시메모리 (210) 는낸드플래시메모리 (210) 에포함된복수의블록 (910) 을핫블록및콜드블록으로분류하고, 데이터보존기간이긴콜드블록에포함된임의의페이지에페리티정보를기록할수있다. 그리고낸드플래시메모리 (210) 는소정의타이밍에복수의블록 (910) 에기록된데이터를에러정정코드및패리티정보에기초하여스크러빙할수있다. 이때, 낸드플래시메모리 (210) 는낸드플래시메모리 (210) 에포함된복수의블록 (910) 에대하여산출될수있는가비지컬렉션주기및세이프주기의비교를통하여소정의타이밍을산출한다. - 13 -
[0108] [0109] [0110] [0111] [0112] [0113] [0114] [0115] 만약, 세이프주기가가비지컬렉션주기보다긴경우, 소정의타이밍은가비지컬렉션주기가될수있다. 이때, 낸드플래시메모리 (210) 는가비지컬렉션주기에가비지컬렉션을수행할수있다. 그리고세이프주기가가비지컬렉션주기보다짧은경우, 낸드플래시메모리 (210) 는세이프주기에먼저패리티정보를기록하여세이프주기를연장할수있다. 그리고낸드플래시메모리 (210) 는패리티정보를기록한다음, 에러정정코드및패리티정보에기초하여세이프주기를재산출할수있다. 낸드플래시메모리 (210) 는재산출된세이프주기및가비지컬랙션주기를다시비교하여, 소정의타이밍을재산출할수있다. 그리고낸드플래시메모리 (210) 는재산출된소정의타이밍에따라스크러빙또는가비지컬렉션을수행할수있다. 이때, 그리고낸드플래시메모리 (210) 는스크러빙을수행하는경우, 에러정정코드및패리티정보에기초하여스크러빙을수행할수있다. 본발명의일실시예에따른낸드플래시기반의스토리지시스템 (200) 및데이터보존강화방법은소정의타이밍에에러정정코드및패리티정보를이용하여복수의블록이기록된데이터에대하여스크러빙을수행함으로써, 교정불가한데이터보유에러율을감소시키고낸드플래시메모리의수명을연장할수있다. 그리고낸드플래시기반의스토리지시스템 (200) 및데이터보존강화방법은가비지컬렉션주기및세이프주기를비교하여, 가비지컬렉션및스크러빙을수행할수있으므로, 낸드플래시메모리의성능및수명에영향을미칠수있는읽기및쓰기연산을줄일수있다. 또한, 낸드플래시기반의스토리지시스템 (200) 및데이터보존강화방법은스크러빙을수행하기위하여, 에러정정코드및패리티정보를이용하므로, 에러정정코드만을이용하는경우에비하여많은양의데이터의오류를수정할수있다. 본발명의일실시예는컴퓨터에의해실행되는프로그램모듈과같은컴퓨터에의해실행가능한명령어를포함하는기록매체의형태로도구현될수있다. 컴퓨터판독가능매체는컴퓨터에의해액세스될수있는임의의가용매체일수있고, 휘발성및비휘발성매체, 분리형및비분리형매체를모두포함한다. 또한, 컴퓨터판독가능매체는컴퓨터저장매체및통신매체를모두포함할수있다. 컴퓨터저장매체는컴퓨터판독가능명령어, 데이터구조, 프로그램모듈또는기타데이터와같은정보의저장을위한임의의방법또는기술로구현된휘발성및비휘발성, 분리형및비분리형매체를모두포함한다. 통신매체는전형적으로컴퓨터판독가능명령어, 데이터구조, 프로그램모듈, 또는반송파와같은변조된데이터신호의기타데이터, 또는기타전송메커니즘을포함하며, 임의의정보전달매체를포함한다. 본발명의방법및시스템은특정실시예와관련하여설명되었지만, 그것들의구성요소또는동작의일부또는전부는범용하드웨어아키텍쳐를갖는컴퓨터시스템을사용하여구현될수있다. 전술한본발명의설명은예시를위한것이며, 본발명이속하는기술분야의통상의지식을가진자는본발명의기술적사상이나필수적인특징을변경하지않고서다른구체적인형태로쉽게변형이가능하다는것을이해할수있을것이다. 그러므로이상에서기술한실시예들은모든면에서예시적인것이며한정적이아닌것으로이해해야만한다. 예를들어, 단일형으로설명되어있는각구성요소는분산되어실시될수도있으며, 마찬가지로분산된것으로설명되어있는구성요소들도결합된형태로실시될수있다. 본발명의범위는상기상세한설명보다는후술하는특허청구범위에의하여나타내어지며, 특허청구범위의의미및범위그리고그균등개념으로부터도출되는모든변경또는변형된형태가본발명의범위에포함되는것으로해석되어야한다. [0116] 부호의설명 200: 낸드플래시기반의스토리지시스템 210: 낸드플래시메모리 220: 메모리 230: 컨트롤러 - 14 -
도면 도면 1 도면 2-15 -
도면 3-16 -
도면 4-17 -
도면 5 도면 6-18 -
도면 7-19 -
도면 8-20 -
도면 9 심사관직권보정사항 직권보정 1 보정항목 청구범위 보정세부항목 청구항 11 변경전 세세이프주기를 변경후 세이프주기를 - 21 -