(51) Int. Cl. (19) 대한민국특허청 (KR) (12) 공개특허공보 (A) G06F 12/08 (2006.01) (21) 출원번호 10-2008-0080510 (22) 출원일자 2008 년 08 월 18 일 심사청구일자 없음 전체청구항수 : 총 8 항 (54) 플래시메모리장치를위한버퍼캐쉬관리방법 (11) 공개번호 10-2010-0021868 (43) 공개일자 2010년02월26일 (71) 출원인 삼성전자주식회사 경기도수원시영통구매탄동 416 (72) 발명자 서동영 경기화성시병점동주공아파트 704 동 1402 호 신동군 서울관악구봉천 6 동 1681-21 로얄빌라 101 호 (74) 대리인 권혁수, 송윤호, 오세준 (57) 요약 본발명의버퍼캐쉬관리방법은, 버퍼캐쉬가꽉찼을때상기버퍼캐쉬에저장된페이지데이터중빅팀윈도우내이전빅팀블록에대응하는페이지데이터를우선적으로제거한다. 그러므로플래시메모리에서로그블록에저장된데이터와데이터블록의데이터를머지하는횟수를감소시킬수있다 대표도 - 도 1-1 -
특허청구의범위청구항 1 플래시메모리를포함하는메모리시스템의버퍼캐쉬관리방법에있어서 : 버퍼캐쉬에기입될페이지데이터를입력받는단계와 ; 상기버퍼캐쉬에저장된페이지데이터중상기플래시메모리로기입될페이지데이터를제거하는단계를포함하되 ; 상기제거단계는, 상기버퍼캐쉬의빅팀윈도우내이전빅팀블록에대응하는페이지데이터를제거하는것을특징으로하는버퍼캐쉬관리방법. 청구항 2 상기빅팀윈도우는, 상기버퍼캐쉬에가장오래전에저장된페이지데이터부터소정의페이지데이터를포함하는것을특징으로하는버퍼캐쉬관리방법. 청구항 3 상기버퍼캐쉬로부터제거되는페이지데이터의블록을상기이전빅팀블록의정보로서저장하는단계를더포함하는것을특징으로하는버퍼캐쉬관리방법. 청구항 4 상기메모리시스템은, 상기이전빅티블록의정보및상기빅팀윈도우그리고상기버퍼캐쉬내가장오래전에사용된페이지데이터에대한정보를각각저장하기위한레지스터들포함하는것을특징으로하는버퍼캐쉬관리방법. 청구항 5 상기제거단계는상기버퍼캐쉬내어떤페이지데이터도선택될수있을때상기버퍼캐쉬내가장오래전에사용된페이지데이터를제거하는것을특징으로하는버퍼캐쉬관리방법. 청구항 6 상기제거단계는, 상기버퍼캐쉬의빅팀윈도우내이전빅팀블록에대응하는페이지데이터의수가복수개일때상기빅팀윈도우내가장오래전에사용된페이지데이터를제거하는것을특징으로하는버퍼캐쉬관리방법. 청구항 7 상기제거단계는, 상기버퍼캐쉬가꽉찼을때상기버퍼캐쉬에저장된페이지데이터중상기플래시메모리로기입될페이지데이터를제거하는것을특징으로하는버퍼캐쉬관리방법. - 2 -
청구항 8 상기플래시메모리는낸드플래시메모리인것을특징으로하는버퍼캐쉬관리방법. 명세서 발명의상세한설명 [0001] 기술분야 본발명은메모리시스템에관한것으로, 좀더구체적으로는플래시메모리장치를위한버퍼캐쉬관리방법 에관한것이다. [0002] [0003] [0004] [0005] [0006] [0007] 배경기술플래시메모리는비휘발성이며저전력소모저장장치이다. 하드디스크드라이브에비해고속액세스성능을갖는플래시메모리는 MP3 플레이어, 디지털카메라및 PDA 등과같은임베디드시스템들용저장장치로서널리사용되고있다. 최근 MP3 플레이어, 디지털카메라의사용이증대되고, 이러한장치들에서대용량의데이터저장장치를요구함에따라서낸드플래시 (NAND flash) 시장이급격하게성장하였다. 또한데스크탑 PC와같은퍼스널시스템들에서도낸드플래시메모리가사용된다. 예컨대, 하이브리드하드디스크 (hybrid hard disk) 및터보메모리 (turbo memory) 는하드디스크드라이브의불휘발성캐쉬로서플래시메모리를사용한다. 낸드플래시기반 SSD(solid-state disk) 는가까운장래에하드디스크를대체할것으로기대된다. 마그네틱하드디스크와달리, 검색시간 (seek time) 이불필요한플래시메모리는고속읽기성능 (high read performance) 을제공한다. 그러나, 플래시메모리는기입성능 (write performance) 를저하시키는두가지특성을갖는다. 첫번째는 " 기입전소거 (erase befor write)" 구조라고불리는, 데이터가블록에기입되기전블록이소거되어야한다는것이다. 또다른특성은기입동작이페이지단위로수행되는반면소거동작은블록단위로수행되는것이다. 블록은복수의페이지데이터의묶음이다. 예컨대, 삼성의대형블록낸드플래시메모리에있어서, 한페이지데이터의크기는 2킬로바이트 (KB) 이고, 한블록데이터의크기는 128 킬로바이트 (64 페이지데이터 ) 이다. 이러한두가지특성때문에대부분의시스템은파일시스템으로부터의논리적페이지어드레스를플레시메모리장치내물리적어드레스로매핑하는 FTL(flash translation layter) 을사용한다. FTL의어드레스매핑스킴은세가지즉, 블록-레벨매핑, 페이지-레벨매핑그리고하이브리드매핑으로분류된다. 블록-레벨매핑은, 매핑페이블이논리적블록어드레스및물리적블록어드레스사이의매핑정보를유지한다. 그러므로논리적페이지가순차위치 (in-place) 스킴에의해서기입된다. 이것은블록내페이지오프셋에의해서정의된블록의고정된위치에페이지데이터가기입됨을의미한다. 블록레벨매핑은작은크기의매핑테이블을필요로한다. 그러나, 특정페이지에서데이터가수정될때특정블록은소거되어야하고, 더욱이변경되지않아야하는페이지들은새로운블록으로복사되어야한다. 이러한제약은많은페이지데이터를이동시키는결과를초래하고, 기입성능을저하시킨다. FTL의세가지어드레스매핑스킴즉, 블록-레벨매핑, 페이지-레벨매핑그리고하이브리드매핑은다음과같은특징을갖는다. 페이지레벨매핑에서, 매핑테이블은논리적페이지어드레스와물리적페이지어드레스간의매핑정보를유지한다. 그러므로, 논리적페이지는임의위치 (out-of-pace) 스킴에의해서매핑된다. 즉, 페이지데이터가블록내어떠한물리적페이지에도기입될수있다. 만일플래시메모리에이미기입된데이터에대한갱신 (update) 요구가전송되면, FTL은새로운데이터를다른비어있는페이지에기입하고, 플래시메모리의여유공간에표시하는것에의해서이전페이지데이터를무효화한다. 이러한페이지레벨매핑의단점은매핑테이블의크기가크다는것이다. 하이브리드매핑은페이지매핑및블록매핑모두를사용한다. 이스킴에서모든물리적블록들은로그블록들 (log blocks) 과데이터블록들 (data blocks) 로분리된다. 로그블록들은로그버퍼 (log buffer) 라고도불리운다. 그러므로하이브리드매핑스킴을사용하는 FTL은로그버퍼기반 FTL이라고도불리운다. 로그블록들은 - 3 -
페이지레벨매핑과임의위치 (out-of-pace) 스킴을사용하고, 데이터블록들은블록 - 레벨매핑및순차위치 (in-place) 스킴에의해서처리된다. 기입요청에대해서 FTL 은데이터를로그블록으로전송하고, 데이터블록 내대응하는이전데이터 (old data) 는무효화한다. [0008] [0009] 만일로그블록이꽉차서빈공간이없다면, 어느하나의로그블록이제거 (victim) 를위해서선택되고, 로그블록내모든유효한페이지들은데이터블록들로이동된다. 이단계에서, 로그블록은로그블록과관련있는데이터블록들과머지된다. 따라서이단계는블록머지라불리운다. 블록머지는세가지즉, 완전머지 (full merge), 부분머지 (partial merge) 그리고스위치머지 (switch merge) 로분류된다. 부분머지및스위치머지는블록내모든페이지들이순차위치스킴에의해서기입된경우에수행될수있다. 완전머지는많은페이지복사및블록소거를필요로하는반면, 부분머지및스위치머지는적은페이지이동비용을유발한다. 하이브리드매핑은블록매핑에비해페이지이동비용을감소시킬수있으나작은크기의매핑테이블을요구한다. 플래시메모리시스템의입출성능을향상시키기위하여블록머지에의해서유발되는오버헤드는감소되어야한다. 그러므로, 대부분의 FTL 스킴은블록머지의횟수를감소시키는것을목표로한다. 그러나, 플래시메모리시스템이 MP3 플레이어및디지털카메라와같은멀티미디어시스템들을타겟으로하기때문에현재 FTL 기술은순차적기입패턴에초점이맞추어져있다. 그러나, 최근플래시메모리장치들은데스크탑 PC 등과같은범용시스템들에사용되고있으므로, 순차적및랜덤기입모두에대한요구가증대되고있다. 발명의내용 [0010] [0011] 해결하고자하는과제따라서본발명의목적은플래시메모리장치에데이터를효율적으로기입할수있는방법을제공하는데있다. 본발명의다른목적은플래시메모리장치에서의머지발생을최소화할수있는버퍼캐쉬관리방법을제공하는데있다. [0012] [0013] [0014] [0015] [0016] [0017] [0018] 과제해결수단이와같은목적을달성하기위한본발명의일특징에의하면, 플래시메모리를포함하는메모리시스템의버퍼캐쉬관리방법은 : 상기버퍼캐쉬에기입될페이지데이터를입력받는단계와, 상기버퍼캐쉬가꽉찼을때상기버퍼캐쉬에저장된페이지중상기플래시메모리로기입될페이지데이터를제거하는단계를포함한다. 상기제거단계는, 상기버퍼캐쉬의빅팀윈도우내이전빅팀블록에대응하는페이지데이터를제거한다. 이실시예에있어서, 상기빅팀윈도우는, 상기버퍼캐쉬에가장오래전에저장된페이지데이터부터소정의페이지데이터를포함한다. 이실시예에있어서, 상기버퍼캐쉬로부터제거되는페이지데이터의블록을상기이전빅팀블록의정보로서저장하는단계를더포함한다. 이실시예에있어서, 상기메모리시스템은, 상기이전빅티블록의정보및상기빅팀윈도우그리고상기버퍼캐쉬내가장오래전에사용된페이지데이터에대한정보를각각저장하기위한레지스터들을포함한다. 이실시예에있어서, 상기제거단계는상기버퍼캐쉬내어떤페이지데이터도선택될수있을때상기버퍼캐쉬내가장오래전에사용된페이지데이터를제거한다. 이실시예에있어서, 상기제거단계는, 상기버퍼캐쉬의빅팀윈도우내이전빅팀블록에대응하는페이지데이터의수가복수개일때상기빅팀윈도우내가장오래전에사용된페이지데이터를제거한다. 이실시예에있어서, 상기플래시메모리는낸드플래시메모리이다. [0019] 효과 이와같은본발명에의하면, 버퍼캐쉬에서이전에빅팀된페이지데이터를우선적으로제거함으로써플래시 메모리에서로그블록에저장된데이터와데이터블록의데이터를머지하는횟수를감소시킬수있다. 발명의실시를위한구체적인내용 - 4 -
[0020] [0021] [0022] [0023] [0024] [0025] [0026] [0027] [0028] [0029] [0030] [0031] [0032] [0033] [0034] 이하본발명의바람직한실시예를첨부된도면들을참조하여상세히설명한다. 본발명에따른플래시메모리저장장치의버퍼캐쉬관리방법은버퍼캐쉬가최근에로그버퍼에기입된페이지데이터만을버퍼캐쉬에서제거 (eviction) 하도록강제한다. 로그버퍼기반 FTL은블록관련정책 (block association policy) 에따라서 1:1 로그블록매핑과 1:N 로그블록매핑의두가지로나뉜다. 블록관련정책은얼마나많은데이터블록들이로그블록으로사용될수있는가를의미한다. 1:1 스킴에서, 로그블록은오직하나의데이터블록으로할당된다. 1:1 스킴에서로그블록들의수보다다양한블록들에대한페이지데이터입 / 출력이발생할때로그블록에대한머지가수행되는로그블록쓰래싱 (log block thrathing) 이발생한다. 즉, 로그블록에페이지데이터를저장할공간이남아있음에도불구하고로그블록에저장된페이지데이터를플래시메모리에기입하여로그블록을비워야하는것이다. 반면, 1:N 로그블록매핑은하나의로그블록에여러데이터블록들이매핑될수있도록한다. 로그블록이머지될때연관된데이터블록의수는로그블록에몇개의데이터블록에대한페이지데이터가저장되었는가에따라서결정된다. 이때하나의로그블록을머지할때여러개의데이터블록들과의머지가수행되면머지코스트가증가한다. 최근에는 N:N 스킴즉, 수퍼블록 (superblock) 스킴이제안되고있다. 수퍼블록스킴은 1:1 매핑스킴과 1:N 매핑스킴의혼합형이다. 본발명의버퍼캐쉬관리방법은다양한블록관련정책모두에적용될수있다. 도 1은본발명의바람직한실시예에따른플래시메모리시스템에포함되는 FTL을보여주는도면이다. 도 1을참조하면, 플래시메모리를포함하는플래시메모리시스템은플래시메모리를효율적으로관리하기위한소프트웨어모듈을포함한다. 이소프트웨어모듈이 FTL(flash translation layer) 이다. FTL(200) 은파일시스템또는어플리케이션소프트웨어로부터전달받은섹터어드레스와섹터갯수를파라미터로하여플래시메모리 (300) 의기입 / 독출동작을위한어드레스변환을수행한다. 파일시스템또는어플리케이션소프트웨어로부터전달받은섹터어드레스는호스트로부터요청될수있다. 본발명의 FTL(200) 은파일시스템 (100) 과플래시메모리 (300) 사이에위치하며, 플래시메모리 (300) 에서의머지동작을최소화할수있도록동작한다. FTL(200) 은호스트와독립된하드웨어형태로구성되거나또는호스트의내부에디바이스드라이버형태로구현될수있다. FTL(200) 은파일시스템 (100) 로부터기입명령이입력되면, 논리주소를플래시메모리 (300) 상의이미소거된영역에대한물리주소로변환한다. FTL(200) 는비교적수행시간이오래걸리는소거동작을감추고 I/O를하나의단위 (atomic operation) 로처리함으로써플래시메모리 (300) 를효율적으로제어할수있다. FTL(200) 은메모리관리기 (memory management)(210), 빅팀윈도우 (victim window, VW) 레지스터 (220), LRU(Least Recently Used) 레지스터 (230) 그리고 RVB(recent victim block, RVB) 레지스터 (240) 를포함한다. 메모리관리기 (210) 는플래시메모리 (300) 에기입될데이터를임시저장하기위한버퍼캐쉬 (212) 를포함한다. 버퍼캐쉬 (212) 를관리하는기법에는여러가지가있을수있다. 플래시메모리기입패턴은버퍼캐쉬의빅팀페이지선택정책에의해서결정되며, 몇몇정책들은플래시메모리의기입비용을최소화하기위해제안되었다. 본발명의버퍼캐쉬 (212) 관리방법은 FaPE(Flash-aware Page Eviction) 스킴으로불리며, 이것은최근제거 (eviction) 된페이지데이터를고려하여버퍼캐쉬로부터교체될빅팀페이지데이터를결정하는방식이다. 도 2는도 1에도시된버퍼캐쉬및플래시메모리의관계를구체적으로보여주는도면이다. 도 2에도시된예에서, 버퍼캐쉬 (212) 는최대 6 개의페이지데이터를저장할수있는크기를갖는다. 플래시메모리 (300) 는실제데이터가저장되는데이터영역 (310) 과데이터를임시로저장하는로그영역 (320) 을포함한다. 이실시예에서, 데이터영역 (310) 는최대 5 개의데이터블록들 (B0-B5) 을저장할수있으며, 로그영역 (320) 은최대 2 개의로그블록들 (L0, L1) 을저장할수있다. 데이터블록과로그블록각각은최대 4 개의페이지데이터를포함한다. 예컨대, 버퍼캐쉬 (212) 에 LRU 순으로페이지데이터 p0, p4, p9, p13, p1 및 p12가저장되어있고, 두개의로그블록들 (L0, L1) 은페이지데이터 p8 및 p12를저장하고, 로그블록들 (L0, L1) 은 1:1 로그블록매핑스킴으로관리된다고가정하자. - 5 -
[0035] [0036] [0037] [0038] [0039] [0040] [0041] [0042] [0043] [0044] [0045] [0046] [0047] [0048] 만일 LRU 페이지교체정책 (page replacement policy) 을사용한다면, 버퍼캐쉬 (212) 내페이지데이터는 p0, p4, p9, p13, p1, p5 순으로제거되고, 플래시메모리 (300) 에서는 6 번의머지동작이수행될것이다. 본발명은플래시메모리 (300) 의머지동작을최소화하기위하여새로운방법으로버퍼캐쉬 (212) 를운영한다. 플래시메모리 (300) 내데이터블록들 (B2, B3) 은최근에로그블록들 (L0, L1) 에기입되었기때문에데이터블록들 (B2, B3) 의페이지데이터 (p9, p13) 을버퍼캐쉬 (212) 로부터제거하는것이더바람직하다. 만일버퍼캐쉬 ((212) 가페이지데이터를 p9, p13, p0, p4, p1, p5 순으로제거하면, 오직두번의머지동작이요구된다. 다시말하면, 만일버퍼캐쉬 ((212) 가페이지데이터를 p9, p13을우선로그블록들 (L0, L1) 에기입한다면, 로그블록 (L0) 에저장된페이지데이터 (p8) 와새로저장될페이지데이터 (p9) 는동일한블록 (B2) 에저장될데이터이고, 마찬가지로로그블록 (L1) 에저장된페이지데이터 (p12) 와새로저장될페이지데이터 (p13) 는동일한블록 (B3) 에저장될데이터이므로머지동작이불필요하다. 블록 (B0) 에대응하는새로운페이지데이터 (p0) 를로그영역 (320) 에기입하기위해서는로그블록들 (L0, L1) 중하나를데이터영역과머지해야한다. 예컨대, 로그블록 (L0) 을머지한다면, 로그블록 (L0) 에저장된페이지데이터 (p8, p9) 을데이터블록 (B2) 내이미저장된페이지데이터과머지한후로그블록 (L0) 을소거한다. 이와같은방법에의하면, 버퍼캐쉬 (212) 가페이지데이터를 p9, p13, p0, p4, p1, p5 순으로제거할때오직두번의머지동작이요구된다. 로그블록들 (L0, L1) 이 1:N 로그블록매핑스킴으로관리되는경우본발명의 FaPE(Flash-aware Page Eviction) 스킴에따른버퍼캐쉬관리방법은다음과같다. 도 3은 1:N 로그블록매핑스킴에적용된본발명의버퍼캐쉬관리방법을설명하기위한버퍼캐쉬와플래시메모리의관계를예시적으로보여주는도면이다. 도 3을참조하면, 초기에로그영역 (320) 의로그블록 (L0) 에페이지데이터 (p8, 12) 이저장된것으로가정하자. 로그영역 (320a) 은, 버퍼캐쉬 (212) 에저장된페이지데이터가 LRU 방식으로 p0, p4, p9, p13, p1, p5 순으로제거된경우페이지데이터의저장상태를보여주며, 로그영역 (320b) 은, 본발명의바람직한실시예에따른방식으로버퍼캐쉬 (212) 에저장된페이지데이터가 p9, p13, p0, p4, p1, p5 순으로제거된경우페이지데이터의저장상태를보여준다. 로그영역 (320a) 의로그블록들 (L0, L1) 은 4의블록관련성 (block associativity) 을가지며, 로그영역 (320b) 의로그블록들 (L0, L1) 의블록관련성은 2로감소한다. 이와같이본발명의버퍼캐쉬관리스킴은로그블록의블록관련성과블록머지의횟수를감소시킨다. 본발명의버퍼캐쉬관리방법은크게세가지특징을갖는다. 첫번째는블록레벨페이지데이터제거이다. 블록머지또는블록관련성을감소시키기위하여버퍼캐쉬 (212) 로부터빅팀블록들의페이지데이터만제거된다. 즉, LRU 교체정책을통해구현된다. 두번째는가능하면로그블록들과관련있는데이터블록들즉, 빅팀블록들이유지되도록한다. 이것은블록의모든페이지데이터가동시에제거되도록함으로써블록머지비용을감소시킨다. 그리고세번째는최신의페이지데이터레벨을고려하는것이다. 즉, 최근에사용된페이지데이터가제거되는것을방지하기위하여빅팀페이지데이터는최근에사용되지않은페이지데이터중선택된다. 도 4는본발명의바람직한실시예에따른버퍼캐쉬관리기법에따라서도 1에도시된메모리관리기가버퍼캐쉬에저장된페이지데이터중빅팀블록을선택하는것을예시적으로보여주는도면이다. 도 4를참조하면, 버퍼캐쉬 (128a) 는 8 개의페이지데이터를저장할수있고, 각페이지데이터는 LRU 순으로저장되는것으로가정한다. 초기에, 도 1에도시된최근빅팀블록 (RVB) 을저장하는레지스터 (240) 는비어있다. 로그블록쓰레싱을방지하기위하여, 레지스터 (240) 에저장되는최근빅팀블록 (RVB) 의수는플래시메모리내로그블록들의수보다작아야한다. 예컨대, FTL의세가지어드레스매핑스킴즉, 블록-레벨매핑, 페이지-레벨매핑그리고하이브리드매핑은다음과같은특징을갖는다. 페이지레벨매핑에서, 매핑테이블은논리적페이지어드레스와물리적페이지어드레스간의매핑정보를유지한다. 그러므로, 논리적페이지는임의위치스킴에의해서매핑된다. 즉, 페이지데이터가블록내어떠한물리적페이지에도기입될수있다. 만일플래시메모리에이미기입된데이터에대한갱신 (update) 요구가전송되면, FTL은새로운데이터를다른비어있는페이지에기입하고, 플래시메모리의여유공간에표시하는것에 - 6 -
의해서이전페이지데이터를무효화한다. 이러한페이지레벨매핑의단점은매핑테이블의크기가크다는것 이다. [0049] [0050] [0051] [0052] [0053] [0054] [0055] [0056] 하이브리드매핑은페이지매핑및블록매핑모두를사용한다. 이스킴에서모든물리적블록들은로그블록들 (log blocks) 과데이터블록들 (data blocks) 로분리된다. 로그블록들은로그버퍼 (log buffer) 라고도불리운다. 그러므로하이브리드매핑스킴을사용하는 FTL은로그버퍼기반 FTL이라고도불리운다. 로그블록들은페이지레벨매핑과임의위치스킴을사용하고, 데이터블록들은블록-레벨매핑및순차위치스킴에의해서처리된다. 기입요청에대해서 FTL은데이터를로그블록으로전송하고, 데이터블록내대응하는이전데이터 (old data) 는무효화한다. 만일로그블록이꽉차서빈공간이없다면, 어느하나의로그블록이제거 (victim) 를위해서선택되고, 로그블록내모든유효한페이지데이터는데이터블록들로이동된다. 이단계에서, 로그블록은로그블록과관련있는데이터블록들과머지된다. 따라서이단계는블록머지라불리운다. 블록머지는세가지즉, 완전머지 (full merge), 부분머지 (partial merge) 그리고스위치머지 (switch merge) 로분류된다. 부분머지및스위치머지는블록내모든페이지데이터가순차위치스킴에의해서기입된경우에수행될수있다. 완전머지는많은페이지데이터복사및블록소거를필요로하는반면, 부분머지및스위머지는적은페이지데이터이동비용을유발한다. 하이브리드매핑은블록매핑에비해페이지데이터이동비용을감소시킬수있으나작은크기의매핑테이블을요구한다. 플래시메모리시스템의입출성능을향상시키기위하여블록머지에의해서유발되는오버헤드는감소되어야한다. 그러므로, 대부분의 FTL 스킴은블록머지의횟수를감소시키는것을목표로한다. 그러나, 플래시메모리시스템이 MP3 플레이어및디지털카메라와같은멀티미디어시스템들을타겟으로하기때문에현재 FTL 기술은순차적기입패턴에초점이맞추어져있다. 그러나, 최근플래시메모리장치들은데스크탑 PC 등과같은범용시스템들에사용되고있으므로, 순차적및랜덤기입모두에대한요구가증대되고있다. 의수는 2인것으로가정한다. 최근에사용된페이지데이터가제거되는것을방지하기위하여빅팀윈도우 (VW) 가사용된다. 빅팀윈도우 (VW) 는레지스터 (220) 에설정된다. 이실시예에서빅팀윈도우 (VW) 는 75% 이다. 즉, 8 개의페이지데이터중오래전에사용된순으로 6 개의페이지데이터가빅팀윈도우 (VW) 내에포함된다. 즉, 오래전에사용된순으로 6 개의페이지데이터중최근빅팀블록 (RVB) 에대응하는 2 개의블록들이검색된다. 만일버퍼캐쉬 (212a) 내어떤페이지데이터도선택될수있는상황이면버퍼캐쉬 (212a) 내가장오래전에사용된페이지데이터가선택된다. 예컨대, 로그버퍼 (320) 가비어있거나, 빅팀윈도우내페이지데이터가동일한블록내페이지데이터인경우등이이에해당한다. 도 1의 LRU 레지스터 (230) 는가장오래전에사용된페이지데이터정보를저장한다. 만일버퍼캐쉬 (212a) 에최근빅팀블록 (RVB) 내대응하는블록의페이지데이터가빅팀윈도우 (VW) 밖에존재하면다른페이지데이터가제거되고나서그페이지데이터가빅팀윈도우 (VW) 내들어갈수이다. 도 4는새로운페이지데이터 (p2, p6, p10 및 p14) 이버퍼캐쉬내삽입될때페이지데이터 (p8, p12, p8 및 p13) 이제거 ( 축출 ) 되는것을보여준다. 모든빅팀페이지데이터가플래시메모리 (300) 로플러쉬되어서빅팀페이지데이터리스트내에어떤페이지데이터도없을때, 새로운최근빅팀블록 (RVB) 이구성되어야한다. 새로운최근빅팀블록들 (RVB) 은 BO, B1이다. 도 5는본발명의바람직한실시예에따른버퍼캐쉬관리방법을보여주는플로우차트이다. 도 5를참조하면, 앞서설명한바와같이, 파일시스템 (100) 으로부터 FTL(200) 로플래시메모리 (300) 에기입될페이지데이터가입력되면 (510), 메모리관리기 (210) 는버퍼캐쉬 (212) 가꽉찼는지판별한다 (520). 만일버퍼캐쉬 (212) 가꽉차지않았다면수신된페이지데이터를버퍼캐쉬 (212) 에삽입한다. 만일버퍼캐쉬 (212) 가꽉찼다면, 버퍼캐쉬 (212) 에저장된페이지데이터중하나를제거해야만한다. 이때메모리관리기 (210) 는앞서설명한바와같이빅팀윈도우내이전빅팀블록에대응하는페이지데이터를제거한다 (530). 페이지데이터제거에의해서버퍼캐쉬에빈공간이생기면메모리관리기 (210) 는빈공간에새로운페이지데이터를삽입한다 (540). 본발명의버퍼캐쉬관리방법은소정의빅팀블록들의페이지데이터만을제거하기때문에 1대1 페이지데이터제거의효과가모든빅팀페이지데이터를제거하는것과유사하다. 대신에, 1대1 페이지데이터제거는빅팀페이지데이터상의갱신요청이발생할때버퍼캐쉬의미스 (miss) 횟수를감소시킬수있으므로플래시메모리의기입요청의횟수가감소된다. - 7 -
[0057] [0058] 빅팀윈도우 (VW) 의크기는기입패턴의위치를고려하여주의깊게선택되어야만한다. 만일빅팀윈도우 (VW) 의크기가너무크면최근에사용된페이지데이터가제거되어서버퍼캐쉬의미스율 (miss ratio) 이증가한다. 만일빅팀윈도우 (VW) 의크기가너무작으면종래의 LRU 스킴과유사하게동작하게되므로로그블록의쓰래싱을유발할수있다. 데스크탑벤치마킹어플리케이션들을이용한테스트를통하여빅팀윈도우 (VW) 의크기는버퍼캐쉬의전체크기의약 75% 가바람직하다. 상술한바와같이본발명의캐쉬버퍼관리방법은빅팀블록의페이지데이터가버퍼캐쉬에서제거되도록강제한다. 이러한관리방법은블록쓰레싱및블록관련성을최소화함으로써로그영역내로그블록들이데이터블록과머지되는횟수를감소시킨다. 그결과, 플래시메모리에대한액세스속도가향상될수있다. 더욱이, 필요에따라서빅팀윈도우의크기와빅팀블록을조절할수있다. [0059] [0060] [0061] [0062] [0063] 도면의간단한설명도 1은본발명의바람직한실시예에따른플래시메모리시스템에포함되는파일변환계층 (FTL) 을보여주는도면이다. 도 2는도 1에도시된버퍼캐쉬및플래시메모리의관계를구체적으로보여주는도면이다. 도 3은 1:N 로그블록매핑스킴에적용된본발명의버퍼캐쉬관리방법을설명하기위한버퍼캐쉬와플래시메모리의관계를예시적으로보여주는도면이다. 도 4는본발명의바람직한실시예에따른버퍼캐쉬관리기법에따라서도 1에도시된메모리관리기가버퍼캐쉬에저장된페이지데이터중빅팀블록을선택하는것을예시적으로보여주는도면이다. 도 5는본발명의바람직한실시예에따른버퍼캐쉬관리방법을보여주는플로우차트이다. 도면 도면 1-8 -
도면 2-9 -
도면 3-10 -
도면 4-11 -
도면 5-12 -