(51) Int. Cl. G06F 12/00 (2006.01) (19) 대한민국특허청 (KR) (12) 등록특허공보 (B1) (45) 공고일자 (11) 등록번호 (24) 등록일자 2007 년 04 월 12 일 10-0706808 2007 년 04 월 05 일 (21) 출원번호 10-2006-0010842 (65) 공개번호 (22) 출원일자 2006년02월03일 (43) 공개일자 심사청구일자 2006년02월03일 (73) 특허권자삼성전자주식회사경기도수원시영통구매탄동 416 (72) 발명자이시윤서울강남구역삼 2 동역삼래미안아파트 102 동 503 호 신동군서울관악구봉천 6 동 1681-21 송동현경기용인시풍덕천 1 동풍림아파트 106 동 1008 호 김장환서울송파구잠실동 299-8 대훈연립 401 호 김정은경기광명시하안 3 동하안주공 12 단지아파트 (1201~1224 동 ) 1211 동 212 호 (74) 대리인권혁수송윤호오세준 (56) 선행기술조사문헌 JP10154101 A JP2003256289 A US6785767 B2 * 심사관에의하여인용된문헌 JP11053261 A US6725342 B1 심사관 : 윤혜숙 전체청구항수 : 총 19 항 (54) 쓰기버퍼로서동작하는불휘발성메모리를구비한데이터저장장치및그것의블록회수방법 (57) 요약 - 1 -
여기에제공되는데이터저장장치는저장매체와 ; 상기저장매체에저장될쓰기데이터를저장하도록구성된플래시메모리버퍼와 ; 그리고상기플래시메모리버퍼와상기저장매체사이의데이터전송동작을제어하도록구성된컨트롤러를포함하며, 상기컨트롤러는상기플래시메모리버퍼의미사용공간이제 1 기준값보다작은지의여부와상기플래시메모리버퍼의유효데이터비율이제 2 기준값보다작은지의여부를판별하며, 판별결과에따라무효한데이터가저장된상기플래시메모리버퍼의메모리블록들에대한블록회수동작과상기플래시메모리버퍼의유효데이터에대한버퍼플러시동작을선택적으로수행하도록구성된다. 대표도 도 1 특허청구의범위 청구항 1. 저장매체와 ; 상기저장매체에저장될쓰기데이터를저장하도록구성된플래시메모리버퍼와 ; 그리고 상기플래시메모리버퍼와상기저장매체사이의데이터전송동작을제어하도록구성된컨트롤러를포함하며, 상기컨트롤러는상기플래시메모리버퍼의미사용공간이제 1 기준값보다작은지의여부와상기플래시메모리버퍼의유효데이터비율이제 2 기준값보다작은지의여부를판별하며, 판별결과에따라무효한데이터가저장된상기플래시메모리버퍼의메모리블록들에대한블록회수동작과상기플래시메모리버퍼의유효데이터에대한버퍼플러시동작을선택적으로수행하도록구성된데이터저장장치. 청구항 2. 제 1 항에있어서, 상기저장매체는자성저장매체를포함하는데이터저장장치. 청구항 3. 제 1 항에있어서, 상기무효데이터가저장된메모리블록들이회수되는동안외부로부터데이터전송동작이요청될때, 상기컨트롤러는상기요청된데이터전송동작이수행되도록상기블록회수동작을중지하는데이터저장장치. 청구항 4. 제 3 항에있어서, 상기컨트롤러는외부로부터데이터전송동작이일정시간동안요청되지않을때상기중지된블록회수동작을재개하는데이터저장장치. 청구항 5. - 2 -
제 1 항에있어서, 상기플래시메모리버퍼의미사용공간이상기제 1 기준값보다작고상기플래시메모리버퍼의유효데이터비율이상기제 2 기준값보다적을때, 상기컨트롤러는상기무효데이터가저장된메모리블록들에대한상기블록회수동작을개시하는데이터저장장치. 청구항 6. 제 1 항에있어서, 상기플래시메모리버퍼의미사용공간이상기제 1 기준값보다작고상기플래시메모리버퍼의유효데이터비율이상기제 2 기준값보다클을때, 상기컨트롤러는상기플래시버퍼메모리에저장된유효데이터가상기저장매체로옮겨지도록상기버퍼플러시동작을수행하는데이터저장장치. 청구항 7. 제 1 항에있어서, 상기플래시메모리버퍼가물리적인주소사상에따라관리될때, 상기무효데이터가저장된메모리블록들은베이스포인터를데이터쓰기방향과반대로적어도하나의메모리블록만큼이동하고이전의베이스포인터에의해서지정된메모리블록의데이터를현재의베이스포인터에의해서지정된메모리블록으로복사함으로써회수되어재사용되는데이터저장장치. 청구항 8. 제 7 항에있어서, 상기무효데이터가저장된메모리블록들을회수하기위한상기블록회수동작은액티브페이지리스트테이블에저장된유효데이터의시작어드레스정보및페이지개수정보에의거하여수행되는데이터저장장치. 청구항 9. 제 1 항에있어서, 상기플래시메모리버퍼가가상주소사상에따라관리될때, 상기무효데이터가저장된메모리블록들은상기플래시메모리버퍼의논리 - 물리주소사상을제거하고적어도하나의페이지에유효한데이터를저장한메모리블록에대한논리 - 물리주소사상을변경함으로써회수되어재사용되는데이터저장장치. 청구항 10. 제 9 항에있어서, 유효한데이터와무효한데이터가혼재한유효블록이존재할때, 상기무효데이터가저장된메모리블록들은상기유효블록의유효한데이터를빈메모리블록으로복사하여상기유효블록을무효블록으로처리하고, 상기무효데이터가저장된메모리블록들에대한논리 - 물리주소사상을제거함으로써회수되어재사용되는데이터저장장치. - 3 -
청구항 11. 저장매체와 ; 상기저장매체에저장될쓰기데이터를저장하기위한플래시메모리버퍼를구비한데이터저장장치를관리하는방법에있어서 : 상기플래시메모리버퍼의미사용공간이제 1 기준값보다작은지의여부를판별하는단계와 ; 상기플래시메모리버퍼의미사용공간이제 1 기준값보다적을때, 상기플래시메모리버퍼의유효데이터비율이제 2 기준값보다작은지의여부를판별하는단계와 ; 그리고 상기플래시메모리버퍼의유효데이터비율이제 2 기준값보다적을때, 상기플래시메모리버퍼의무효블록들에대한블록회수동작을수행하는단계를포함하는것을특징으로하는방법. 청구항 12. 제 11 항에있어서, 상기플래시메모리버퍼의유효데이터비율이제 2 기준값보다클때, 상기플래시메모리버퍼의유효데이터에대한버퍼플러시동작을수행하는단계를더포함하는것을특징으로하는방법. 청구항 13. 제 11 항에있어서, 상기블록회수동작이수행되는동안, 외부로부터데이터전송동작이요청되었는지의여부를판별하는단계를더포함하는것을특징으로하는방법. 청구항 14. 제 13 항에있어서, 외부로부터데이터전송동작이요청된경우, 상기블록회수동작은중지되는것을특징으로하는방법. 청구항 15. 제 14 항에있어서, 상기요청된데이터전송동작이완료되고일정시간이경과한후, 상기중지된블록회수동작이재개되는것을특징으로하는방법. 청구항 16. 제 11 항에있어서, 상기플래시메모리버퍼가물리적인주소사상에따라관리될때, 상기무효데이터가저장된메모리블록들은베이스포인터를데이터쓰기방향과반대로적어도하나의메모리블록만큼이동하고이전의베이스포인터에의해서지정된메모리블록의데이터를현재의베이스포인터에의해서지정된메모리블록으로복사함으로써회수되어재사용되는것을특징으로하는방법. - 4 -
청구항 17. 제 16 항에있어서, 상기무효데이터가저장된메모리블록들을회수하기위한상기블록회수동작은액티브페이지리스트테이블에저장된유효데이터의시작어드레스정보및페이지개수정보에의거하여수행되는것을특징으로하는방법. 청구항 18. 제 11 항에있어서, 상기플래시메모리버퍼가가상주소사상에따라관리될때, 상기무효데이터가저장된메모리블록들은상기플래시메모리버퍼의논리 - 물리주소사상을제거하고적어도하나의페이지에유효한데이터를저장한메모리블록에대한논리 - 물리주소사상을변경함으로써회수되어재사용되는것을특징으로하는방법. 청구항 19. 제 18 항에있어서, 유효한데이터와무효한데이터가혼재한유효블록이존재할때, 상기무효데이터가저장된메모리블록들은상기유효블록의유효한데이터를빈메모리블록으로복사하여상기유효블록을무효블록으로처리하고, 상기무효데이터가저장된메모리블록들에대한논리 - 물리주소사상을제거함으로써회수되어재사용되는것을특징으로하는방법. 명세서 발명의상세한설명 발명의목적 발명이속하는기술및그분야의종래기술 본발명은데이터저장장치에관한것으로, 좀더구체적으로는쓰기버퍼로서불휘발성메모리를구비한데이터저장장치를제공하는것이다. 하드디스크드라이브 (HDD) 와같은데이터저장장치는, 일반적으로, 쓰기버퍼를채용하며, 이쓰기버퍼는반도체메모리를이용하여구현될것이다. 일반적인데이터저장장치의쓰기버퍼는 DRAM 과같은휘발성메모리를이용하여구현될수있다. 쓰기버퍼의주된목적은호스트로부터의데이터쓰기요청을재정렬함으로써디스크헤드의탐색시간을최소화하기위한것이다. DRAM 과같은휘발성메모리로쓰기버퍼가구현되는경우, 쓰기버퍼에저장된데이터는전원공급이중단될때소실될수있다. 그러한까닭에, 호스트로부터전송된쓰기데이터는휘발성메모리로구현된쓰기버퍼에비교적짧은시간동안만저장될것이다. 이러한단점을해결하기위해서, 플래시메모리와같은불휘발성메모리가쓰기버퍼로서채용될수있다. 이러한경우, 비교적장시간동안데이터를버퍼링하는것이가능하다. 즉, 전원공급이중단되어도쓰기버퍼에기록된데이터는소실되지않는다. 그러한까닭에, 디스크등의저장매체에공급되는전원이중단된상태에서호스트로부터제공된쓰기데이터를쓰기버퍼에기록해두는것이가능하다. 쓰기버퍼로서불휘발성메모리를사용하는경우, HDD 의전력소모의대부분을차지하는스핀들모터의구동에의하여야기되는전력소모를줄일수있다. 디스크의헤드미디어를안전한위치에고정시켜둠으로써시스템의이동이나취급부주의등에의하여발생하는충격과진동등에의한고장을감소시킬수있다. 또한, 디스크내부의기계적인부품의작동을줄임으로써내구성향상에도도움이된다. - 5 -
도 1 은일반적인데이터저장장치를갖는컴퓨터시스템을개략적으로보여주는블록도이다. 도 1 을참조하면, 일반적인컴퓨터시스템은데이터저장장치 (1) 와호스트 (7) 를포함한다. 호스트 (7) 는, 예를들면, 노트북컴퓨터와같은이동컴퓨팅장치들을포함한다. 데이터저장장치 (1) 는쓰기버퍼 (2), 디스크 (3), 디스크 (3) 를구동하기위한스핀들모터 (4), 그리고컨트롤러 (8) 를포함한다. 디스크 (3) 는, 도 1 에도시된바와같이, 헤드미디어 (5) 와자성저장매체 (6) 를포함한다. 컨트롤러 (8) 는디스크 (3) 와쓰기버퍼 (2) 사이의데이터전송을그리고디스크 (3) 와호스트 (7) 사이의데이터전송을제어하도록구성된다. 데이터저장장치 (1) 가호스트 (7)( 예를들면, 노트북 PC) 로부터데이터쓰기요청을받으면, 쓰기버퍼 (2) 에미사용공간이존재하는한쓰기데이터는컨트롤러 (3) 의제어하에불휘발성메모리로구성된쓰기버퍼 (2) 내에저장된다. 이때, 디스크 (3) 에대한데이터쓰기동작은일어나지않는다. 그러한이유로, 디스크 (3) 를구동하기위한스핀들모터 (4) 에공급되는전원을차단할수있다. 또한, 충분한크기의쓰기버퍼 (2) 를제공하는경우, 장시간동안스핀들모터 (4) 를세워둠에따라전력소모를줄이는효과를증대시킬수있다. 경우에따라서자성저장매체 (6) 전체에공급되는전원을차단함으로써전력소모를더욱줄일수있다. 또한, 장시간동안스핀들모터 (4) 를세워두고헤드미디어 (5) 를자성저장매체 (6) 위에두지않음으로써, 시스템의이동이나취급부주의등에의하여발생하는충격, 진동등에의한저장장치의고장발생확률을줄일수있다. 불휘발성메모리인플래시메모리를이용하여쓰기버퍼 (2) 를구현하는경우, 쓰기버퍼 (2) 는다음과같은방식에따라관리될것이다. 일반적으로, 플래시메모리내의같은위치에데이터가덮어쓰여지지않고데이터가메모리블록내에서순차적으로기록되어야한다는 2 가지동작특성들때문에, 호스트 (7) 로부터전송된쓰기데이터는요청된시간순서에따라순차적으로쓰기버퍼 (2) 내에기록된다. 예를들면, 도 2 에도시된바와같이, 호스트로부터데이터쓰기동작이계속해서요청됨에따라, 플래시메모리로구현되는쓰기버퍼 (2) 의미사용공간이줄어든다. 쓰기버퍼 (2) 의미사용공간이부족한경우, 쓰기버퍼 (2) 에기록된데이터를저장매체로서디스크 (3) 로옮김으로써쓰기버퍼 (2) 내의미사용공간을재확보하는것이가능하다. 이러한동작을 " 버퍼플러시동작 " 이라고부른다. 버퍼플러시동작이발생하는경우, 쓰기버퍼 (2) 에기록되어있던데이터를디스크 (3) 에저장하기위하여디스크 (3) 에전원이공급되어야한다. 만약호스트 (7) 로부터전달된쓰기데이터와동일한주소를갖는디스크 (3) 내의데이터가이미쓰기버퍼 (2) 에기록되어있으면, 새로요청된쓰기데이터는쓰기버퍼 (2) 에순차적으로기록되고, 이미기록되어있던데이터는낡은데이터이기때문에무효화된다. 무효화된데이터는앞서설명된플래시메모리의동작특성즉, 동일한위치에데이터가덮어쓰어질수없다는동작특성에기인하여발생된다. 즉, 도 3 의 (a) 에서보인바와같이, 쓰기버퍼 (2) 에이미기록되어있는데이터와동일한주소를갖는디스크 (3) 의데이터에대한쓰기동작이호스트 (7) 에의해서요청되면, 플래시메모리의데이터덮어쓰기동작이수행될수없기때문에, 호스트 (7) 에서새롭게전송된쓰기데이터는쓰기버퍼 (2) 에순차적으로기록되고, 기존에기록되어있던데이터는무효화된다 ( 도 3 의 (a) 및 (b) 에서, 빗금친부분 ). 동일주소에대한데이터쓰기요청은, 예를들면, 호스트 (7) 의파일시스템, 메타데이터등에의하여빈번하게발생될수있다. 따라서, 시간이흐름에따라동일주소에대한데이터쓰기요청이빈번하게발생하면, 도 3 의 (b) 에도시된바와같이, 무효화된데이터가플래시메모리로구성된쓰기버퍼 (2) 내의여러위치에다수존재하게된다. 상술한바와같이, 데이터 ( 무효화된데이터및유효한데이터를포함 ) 가쓰기버퍼 (2) 내의많은공간을차지하고있는경우, 쓰기버퍼 (2) 의미사용공간이부족해질것이다. 이러한경우, 앞서설명된버퍼플러시동작을통해유효한데이터를디스크 (3) 로옮겨야한다. 이러한버퍼플러시동작에따라미사용공간을확보하는것이가능하다. 하지만, 버퍼플러시동작은, 앞서언급된바와같이, 스핀들모터 (4) 를회전시키기위해서전력소모를수반하게된다. 만약버퍼플러시동작이빈번하게수행되면, 데이터저장장치 (1) 로인한전력소모가증가하게될것이다. 따라서, 이동컴퓨팅시스템의전원공급에이용되는배터리의재충전간시간이감소하게된다. 이는배터리에의해서동작가능한시간이감소함을그리고이동성에따른충격이나진동에대한데이터저장장치의내구성이저하됨을의미한다. 결론적으로, 재충전간시간을증가시키고데이터저장장치의내구성을증대시키기위한쓰기버퍼의새로운관리기법이요구되고있다. 발명이이루고자하는기술적과제 본발명의목적은전력소모를줄일수있는데이터저장장치및그것의관리방법을제공하는것이다. - 6 -
본발명의다른목적은무효화된영역을회수하여재사용할수있는데이터저장장치및그것의관리방법을제공하는것이다. 본발명의또다른목적은버퍼플러시동작을줄일수있는향상된성능을갖는데이터저장장치및그것의관리방법을제공하는것이다. 발명의구성 상술한제반목적을달성하기위한본발명의특징에따르면, 데이터저장장치는저장매체와 ; 상기저장매체에저장될쓰기데이터를저장하도록구성된플래시메모리버퍼와 ; 그리고상기플래시메모리버퍼와상기저장매체사이의데이터전송동작을제어하도록구성된컨트롤러를포함하며, 상기컨트롤러는상기플래시메모리버퍼의미사용공간이제 1 기준값보다작은지의여부와상기플래시메모리버퍼의유효데이터비율이제 2 기준값보다작은지의여부를판별하며, 판별결과에따라무효한데이터가저장된상기플래시메모리버퍼의메모리블록들에대한블록회수동작과상기플래시메모리버퍼의유효데이터에대한버퍼플러시동작을선택적으로수행하도록구성된다. 이실시예에있어서, 상기저장매체는자성저장매체를포함한다. 이실시예에있어서, 상기무효데이터가저장된메모리블록들이회수되는동안외부로부터데이터전송동작이요청될때, 상기컨트롤러는상기요청된데이터전송동작이수행되도록상기블록회수동작을중지한다. 이실시예에있어서, 상기컨트롤러는외부로부터데이터전송동작이일정시간동안요청되지않을때상기중지된블록회수동작을재개한다. 이실시예에있어서, 상기플래시메모리버퍼의미사용공간이상기제 1 기준값보다작고상기플래시메모리버퍼의유효데이터비율이상기제 2 기준값보다적을때, 상기컨트롤러는상기무효데이터가저장된메모리블록들에대한상기블록회수동작을개시한다. 이실시예에있어서, 상기플래시메모리버퍼의미사용공간이상기제 1 기준값보다작고상기플래시메모리버퍼의유효데이터비율이상기제 2 기준값보다클을때, 상기컨트롤러는상기플래시버퍼메모리에저장된유효데이터가상기저장매체로옮겨지도록상기버퍼플러시동작을수행한다. 이실시예에있어서, 상기플래시메모리버퍼가물리적인주소사상에따라관리될때, 상기무효데이터가저장된메모리블록들은베이스포인터를데이터쓰기방향과반대로적어도하나의메모리블록만큼이동하고이전의베이스포인터에의해서지정된메모리블록의데이터를현재의베이스포인터에의해서지정된메모리블록으로복사함으로써회수되어재사용된다. 이실시예에있어서, 상기무효데이터가저장된메모리블록들을회수하기위한상기블록회수동작은액티브페이지리스트테이블에저장된유효데이터의시작어드레스정보및페이지개수정보에의거하여수행된다. 이실시예에있어서, 상기플래시메모리버퍼가가상주소사상에따라관리될때, 상기무효데이터가저장된메모리블록들은상기플래시메모리버퍼의논리 - 물리주소사상을제거하고적어도하나의페이지에유효한데이터를저장한메모리블록에대한논리 - 물리주소사상을변경함으로써회수되어재사용된다. 이실시예에있어서, 유효한데이터와무효한데이터가혼재한유효블록이존재할때, 상기무효데이터가저장된메모리블록들은상기유효블록의유효한데이터를빈메모리블록으로복사하여상기유효블록을무효블록으로처리하고, 상기무효데이터가저장된메모리블록들에대한논리 - 물리주소사상을제거함으로써회수되어재사용된다. 본발명의다른특징에따르면, 저장매체와 ; 상기저장매체에저장될쓰기데이터를저장하기위한플래시메모리버퍼를구비한데이터저장장치를관리하는방법이제공되며, 이방법은상기플래시메모리버퍼의미사용공간이제 1 기준값보다작은지의여부를판별하는단계와 ; 상기플래시메모리버퍼의미사용공간이제 1 기준값보다적을때, 상기플래시메모리버퍼의유효데이터비율이제 2 기준값보다작은지의여부를판별하는단계와 ; 그리고상기플래시메모리버퍼의유효데이터비율이제 2 기준값보다적을때, 상기플래시메모리버퍼의무효블록들에대한블록회수동작을수행하는단계를포함한다. - 7 -
이실시예에있어서, 이방법은상기플래시메모리버퍼의유효데이터비율이제 2 기준값보다클때, 상기플래시메모리버퍼의유효데이터에대한버퍼플러시동작을수행하는단계를더포함한다. 이실시예에있어서, 이방법은상기블록회수동작이수행되는동안, 외부로부터데이터전송동작이요청되었는지의여부를판별하는단계를더포함한다. 이실시예에있어서, 외부로부터데이터전송동작이요청된경우, 상기블록회수동작은중지된다. 이실시예에있어서, 상기요청된데이터전송동작이완료되고일정시간이경과한후, 상기중지된블록회수동작이재개된다. 이실시예에있어서, 상기플래시메모리버퍼가물리적인주소사상에따라관리될때, 상기무효데이터가저장된메모리블록들은베이스포인터를데이터쓰기방향과반대로적어도하나의메모리블록만큼이동하고이전의베이스포인터에의해서지정된메모리블록의데이터를현재의베이스포인터에의해서지정된메모리블록으로복사함으로써회수되어재사용된다. 이실시예에있어서, 상기무효데이터가저장된메모리블록들을회수하기위한상기블록회수동작은액티브페이지리스트테이블에저장된유효데이터의시작어드레스정보및페이지개수정보에의거하여수행된다. 이실시예에있어서, 상기플래시메모리버퍼가가상주소사상에따라관리될때, 상기무효데이터가저장된메모리블록들은상기플래시메모리버퍼의논리 - 물리주소사상을제거하고적어도하나의페이지에유효한데이터를저장한메모리블록에대한논리 - 물리주소사상을변경함으로써회수되어재사용된다. 이실시예에있어서, 유효한데이터와무효한데이터가혼재한유효블록이존재할때, 상기무효데이터가저장된메모리블록들은상기유효블록의유효한데이터를빈메모리블록으로복사하여상기유효블록을무효블록으로처리하고, 상기무효데이터가저장된메모리블록들에대한논리 - 물리주소사상을제거함으로써회수되어재사용된다. 앞의일반적인설명및다음의상세한설명모두예시적이라는것이이해되어야하며, 청구된발명의부가적인설명이제공되는것으로여겨져야한다. 참조부호들이본발명의바람직한실시예들에상세히표시되어있으며, 그것의예들이참조도면들에표시되어있다. 가능한어떤경우에도, 동일한참조번호들이동일한또는유사한부분을참조하기위해서설명및도면들에사용된다. 아래에서, 쓰기버퍼로서사용되는플래시메모리가본발명의특징및기능을설명하기위한한예로서사용된다. 하지만, 이기술분야에정통한사람은여기에기재된내용에따라본발명의다른이점들및성능을쉽게이해할수있을것이다. 본발명은다른실시예들을통해또한, 구현되거나적용될수있을것이다. 게다가, 상세한설명은본발명의범위, 기술적사상그리고다른목적으로부터상당히벗어나지않고관점및응용에따라수정되거나변경될수있다. 본발명에따른데이터저장장치는플래시메모리와같은불휘발성메모리로구성된쓰기버퍼를포함하며, 무효화된데이터가저장된공간을회수하여재사용할수있는블록회수기법을채용한다. 다시말해서, 데이터가쓰기버퍼내의많은공간을차지함에따라, 도 4 에도시된바와같이, 쓰기버퍼의미사용공간이감소하게된다 ( 또는미사용공간이쓰기버퍼의전체저장공간중일정비율이하로낮아진다 ). 이러한경우, 본발명의데이터저장장치에따르면, 버퍼플러시동작을수행하지않고이후설명될본발명의블록회수기법을통해미사용공간을재확보하는것이가능하다. 본발명의블록회수기법은버퍼플러시동작을최소화시키며 ( 또는, 버퍼플러시동작들사이의시간간격을증대시키고 ), 이는저장매체 ( 예를들면, 스핀들모터 ) 로의전원공급이최소화되게한다. 결과적으로, 데이터저장장치의전력소모의감소효과를극대화할수있을뿐만아니라기계적부품의동작최소화를통해데이터저장장치의내구성을향상시키는것이가능하다. 본발명에따른블록회수기법은물리주소사상 (physical address mapping) 과가상주소사상 (virtual address mapping) 을이용하여쓰기버퍼를관리하는데이터저장장치에적용될것이다. 하지만, 본발명에따른블록회수기법이여기에개시된것에국한되지않음은이분야의통상적인지식을습득한자들에게자명하다. 먼저, 물리주소사상을이용하는데이터저장장치의블록회수기법이이하상세히설명될것이다. - 8 -
물리주소사상이란논리적으로연속한플래시메모리의메모리블록들이물리적으로도연속한메모리블록들로할당됨을의미한다. 이러한물리주소사상이쓰기버퍼로서사용되는플래시메모리의메모리블록을관리하는데사용되는경우, 본발명의데이터저장장치는쓰기버퍼의메모리블록들을환형큐 (circular queue) 의형태로관리함으로써무효한데이터가저장된메모리블록들을회수및재사용하도록구성될것이다. 예를들면, 도 5 에도시된바와같이, 복수개의메모리블록들 (M1-Mn) 을갖는플래시메모리가데이터저장장치의쓰기버퍼로서사용된다고가정하자. 쓰기버퍼는특정한시작블록주소를가지는환형큐의형태로관리되고, 이시작주소를이하베이스포인터 (base pointer) 라고칭한다. 도 5 에있어서, 예를들면, 베이스포인터는초기에메모리블록 (M3) 을지정하도록설정될것이다. 이러한경우, 호스트로부터제공되는쓰기데이터는베이스포인터에의해서지정되는메모리블록 (M3) 부터저장될것이다. 호스트로부터의데이터쓰기요청이발생함에따라, 쓰기데이터는블록번호들의오름차순으로순차적으로플래시메모리즉, 쓰기버퍼에기록될것이다. 이와반대로, 쓰기데이터가블록번호들의내림차순으로순차적으로플래시메모리즉, 쓰기버퍼에기록될수있음은이분야의통상적인지식을습득한자들에게자명하다. 도 5 의예에있어서는호스트로부터쓰여진데이터가메모리블록 (M3) 부터메모리블록 (M(n-3)) 까지저장되어있으며, 쓰기버퍼의미사용공간은메모리블록들 (M1, M2, M(n-2), M(n-1), Mn) 로구성된다. 쓰기버퍼가앞서설명된방식으로관리될때수행되는블록회수기법이이하상세히설명될것이다. 호스트로부터의데이터쓰기요청이발생함에따라, 쓰기데이터는블록번호들의오름차순으로순차적으로플래시메모리즉, 쓰기버퍼에기록될것이다. 쓰기동작이반복됨에따라, 도 6 의 (a) 에도시된바와같이, 쓰기버퍼내의미사용공간이부족해질것이다. 이러한경우, 먼저, 베이스포인터가변경될것이다. 쓰기데이터는블록번호들의오름차순으로순차적으로플래시메모리에저장되는경우, 베이스포인터는데이터기록순서의반대방향으로변경될것이다. 즉, 도 6 의 (b) 에도시된바와같이, 베이스포인터는메모리블록 (M3) 대신에메모리블록 (M2) 을지정하도록변경될것이다. 여기서, 베이스포인터의변경이이에국한되지않음은자명하다. 예를들면, 베이스포인터가데이터기록순서의반대방향으로변경될때 2 또는그보다많은메모리블록들만큼변경될수있다. 도 6 의 (b) 에도시된예의경우, 데이터기록이블록주소가증가하는방향으로일어나므로베이스포인터의이동은블록주소가감소하는방향으로일어난다. 이전의베이스포인터는메모리블록 (M3) 을가리키지만, 블록회수동작이개시되면서베이스포인터가메모리블록 (M2) 을가리키게된다. 베이스포인터가메모리블록 (M1) 을가리키고있는경우, 블록회수동작이개시되면, 쓰기버퍼가환형큐의형태로관리됨에따라새로운베이스포인터는메모리블록 (Mn) 을가리키게된다. 일단베이스포인터가변경되면, 이전의베이스포인터에의해서지정된메모리블록의유효한데이터가새로운 ( 또는현재의 ) 베이스포인터에의해서지정된메모리블록으로복사된다. 이때, 기존의베이스포인터에의해서지정된메모리블록의블록주소보다작은블록주소를가지는데이터블록은쓰기버퍼의미사용공간에해당되기때문에, 새로운베이스포인터에의해서지정되는메모리블록 (M2) 에는유효한데이터가저장되어있지않을것이다. 하지만, 플래시메모리관리정책에따라서새로운베이스포인터에의해서지정되는메모리블록 (M2) 에대한블록소거동작이수반될수있다. 도 6 의 (b) 에도시된바와같이, 이전의베이스포인터에의해서지정되는메모리블록으로부터복사된유효한데이터는새로운베이스포인터가가리키고있는메모리블록에서부터순차적으로쓰여지게될것이다. 하나의블록이모두쓰여지고나면데이터기록방향과같은방향 ( 예를들면, 블록주소가증가하는방향 ) 으로새메모리블록이할당된다. 블록회수동작시유효한데이터만복사되기때문에, 데이터기록방향과같은방향으로새메모리블록을할당할때해당메모리블록에유효한데이터가없음이보장될것이다. 따라서, 물리주소사상을이용한쓰기버퍼관리기법에서는쓰기버퍼내의미사용공간이적어도하나의메모리블록을포함하는경우블록회수동작을수행하는것이가능하다. 블록회수동작이완료되면, 도 6 의 (c) 에도시된바와같이, 무효한데이터가차지하고있던저장공간이회수되고, 회수된저장공간을미사용공간으로재사용하는것이가능하다. 무효데이터가저장된메모리블록들을회수하여재사용함에따라, 앞서언급된바와같이, 버퍼플러시동작을최소화시키는것이가능하다. 무효데이터가저장된메모리블록을회수하기위해서유효한데이터를새로운메모리블록으로복사하는경우, 모든데이터페이지에대하여유효 / 무효식별을위한데이터필드를기록하고매페이지에대해이식별자를읽음으로써유효한데이터만을선택적으로복사할수도있다. 하지만, 이러한방법을이용할경우모든데이터페이지에대한읽기동작이수반되어야한다. 따라서모든데이터페이지들을읽지않고도유효한데이터페이지들을가려낼수있는방법이요구된다. 이를위해서, 본발명의데이터저장장치에는액티브페이지리스트테이블 (Active Page List table)( 이하, "APL 테이블 " 이라칭함 ) 을이용하여유효한페이지를식별하는방법이제공된다. - 9 -
APL 테이블을보여주는도 7 을참조하면, APL 테이블에는플래시메모리의주소순서에따라정렬된 APL 정보가저장된다. APL 정보는유효데이터가저장되는페이지의시작주소 ( 메모리블록주소및페이지주소를포함함 ) 를나타내는어드레스정보 (Si)(i=1 p) 와유효한데이터가저장된페이지들의개수를나타내는페이지정보 (Ni) 를포함한다. APL 테이블은쓰기버퍼의사상정보로부터구성될수있다. 이러한 APL 테이블을이용하는경우, 블록회수동작시 APL 정보에따라유효한데이터만을복사하는것이가능하다. 물리주소사상과달리, 쓰기버퍼를관리하기위해서가상주소사상방식이데이터저장장치에적용될수있다. 이하, 가상주소사상을이용하는데이터저장장치의블록회수기법이상세히설명될것이다. 가상주소사상이란쓰기버퍼의논리적주소공간에서데이터쓰기가블록주소가증가하는방향 ( 또는감소하는방향 ) 으로이루어지고, 이논리적블록들이플래시메모리의임의의물리적블록에사상되는것을의미한다. 예를들면, 논리적블록의개수 (M) 가물리적블록의개수 (N) 보다클수있으므로, 도 8 에도시된바와같이, 논리적블록들은데이터쓰기에이용됨에따라동적으로물리적블록에할당된다. 즉, 데이터쓰기에이용되기이전에는논리적블록에물리적블록을할당하지않으며, 호스트로부터의데이터쓰기요청이발생하여추가의블록이요구될때마다블록관리정책에따라물리적블록이할당된다. 이러한가상주소사상을이용한블록회수동작이이하상세히설명될것이다. 먼저, 도 9 에도시된바와같이, 블록회수동작은무효한데이터만이저장되어있는메모리블록 ( 이하, " 무효블록 " 이라칭함 ) 에대한논리 - 물리주소사상을제거하고, 적어도하나의페이지에유효한데이터가저장된메모리블록 ( 이하, 유효블록이라칭함 ) 에대한논리 - 물리주소사상을변경함으로써달성될수있다. 블록회수동작이수행된후, 쓰기버퍼의가상주소공간은유효블록들이서로연속한가상블록주소를가지도록결정될것이다. 따라서, 데이터의복사를거치지않고무효블록들을회수하는것이가능하다. 이후, 호스트로부터의데이터쓰기요청에의하여새데이터블록이요구될때새로운논리 - 물리주소사상을통하여회수된메모리블록들을재사용할수있다. 도 9 에서, 플래시메모리의물리블록들 ( 예를들면, B, C, E) 이무효블록에사상되어있다고가정하면, 블록회수동작이수행됨에따라그러한물리블록들 (B, C, E) 에대한논리 - 물리주소사상이제거될것이다. 이후, 메모리블록들 (B, C, E) 이재사용될수있다. 이하, 앞서설명된과정은가상블록주소컴팩션 (Virtual Block Address Compaction)( 이하, VBAC 라표기됨 ) 과정이라칭한다. 이에반해서, 유효한데이터와무효한데이터가혼재하는메모리블록역시아래와같은과정을통해회수될수있다. 즉, 데이터를복사하지않은상태에서단지논리 - 물리주소사상을변경하는것과달리, 유효블록에저장된유효데이터가다른메모리블록으로복사되고, 그유효블록은무효블록으로처리될수있다. 이러한과정을통해추출된무효블록들과본래의무효블록들은도 9 에서설명된절차 ( 무효블록들에대한논리 - 물리주소사상의제거 ) 를통해회수될것이다. 이러한절차는이후물리적인가비지블록콜렉션 (Physical Garbage Block Collection)( 이하, PGBC 라표기됨 ) 과정이라칭한다. 상술한 PGBC 과정에서는서로다른메모리블록들사이의데이터복사가요구될것이다. 예를들면, 도 10 의 (a) 는 PGBC 과정이이루어지기전에데이터블록들내에유효한데이터와무효한데이터가혼재하는예를보여주고잇다. 일단 PGBC 과정이개시되면, 도 10 의 (b) 에도시된바와같이, 메모리블록에저장된유효한데이터가빈메모리블록으로복사된다. 빈메모리블록으로의데이터복사완료시, 도 10 의 (c) 에도시된바와같이, 유효데이터가저장되었던메모리블록 ( 예를들면, 1 번메모리블록 ) 은무효블록이될것이다. 이후, 앞서설명된 VBAC 과정을통해즉, 무효블록들에대한논리 - 물리주소사상을제거함으로써무효블록들을회수하는것이가능하다. 그렇게회수된메모리블록들은이후재사용될것이다. PGBC 과정에서유효한데이터가저장된유효블록의페이지들의개수를기준으로 ( 즉, 무효블록을추출해내기위하여요구되는데이터복사의양을기준으로 ) 각블록에대한데이터복사비용을정의하고, 데이터복사비용이작은블록을우선적으로무효블록추출의대상으로결정함으로써최소한의데이터복사를통해무효블록을추출할수있다. 이와같은최적화는무효블록의추출에소요되는실행시간을최소화한다. 또한, 데이터복사비용이작은블록으로부터무효블록을추출함에있어서도, 모든페이지를읽어들이지않고유효한데이터페이지들만을읽어들이기위하여앞서언급된 APL 테이블을이용할수있다. 물리주소사상을이용하는경우와비교하여볼때, 가상주소사상을이용한블록회수동작에요구되는데이터복사의양을크게줄일수있다는장점이있다. 또한, 무효블록을추출하는단계와논리 - 물리주소사상을변경하여무효블록을회 - 10 -
수하는단계를분리함으로써필요에따라부분적으로블록회수동작을행할수있다는장점이있다. 그러나, 쓰기버퍼의가상주소공간으로부터플래시메모리의물리주소공간으로의사상정보를유지해야하는부담이증가하며, 특히빈번한사상정보의변경이이루어지므로정전복구에대한많은고려가필요하다. 도 11 은본발명에따른데이터저장장치의쓰기버퍼를관리하는방법을설명하기위한흐름도이다. 이하, 본발명에따른데이터저장장치의쓰기버퍼를관리하는방법이참조도면들에의거하여상세히설명될것이다. 일단블록회수절차가개시되면, 쓰기버퍼의미사용공간이기준값 (K%) 이하인지의여부가판별될것이다 (S100). 앞에서설명한바와같이, 블록회수동작은쓰기버퍼내의미사용데이터저장공간이부족할때미사용공간을재확보하기위하여이루어진다. 앞에서설명한바와같이호스트로부터의데이터요청에대한응답시간을지연시키지않기위해서는블록회수동작이수행되는동안에도쓰기버퍼를이용하여호스트로부터의데이터쓰기요청을처리할필요가있다. 그러므로, 블록회수동작의개시시점에서도쓰기버퍼내에는여분의미사용공간이필요하다. 즉, 쓰기버퍼내에일정정도의미사용공간이아직남아있을때블록회수동작을시작하는것이시스템전체의성능측면에서유리하다. 이를위하여본발명에서는쓰기버퍼내의미사용공간이전체쓰기버퍼영역의특정비율 (K %) 미만일때블록회수동작이개시될것이다. S100 단계에서쓰기버퍼의미사용공간이정해진공간 (K%) 보다많은경우, 블록회수절차는종료될것이다. 만약쓰기버퍼의미사용공간이정해진공간 (K%) 이하인것으로판별되면, 쓰기버퍼에저장된유효데이터의비율이기준값 (M%) 이하인지의여부가판별될것이다 (S110). 쓰기버퍼내의미사용공간이 K % 미만인경우에대해서도, 항상블록회수동작을개시하기보다는버퍼플러시동작과블록회수동작을선택적으로행하는것이유리하다. 즉, 쓰기버퍼내에서이미이용된데이터저장공간내에서무효한데이터가차지하는비율이높은경우에는블록회수를통하여무효한데이터가차지하고있던저장공간을재사용하는것이유리하다. 하지만, 무효한데이터가차지하는비율이낮은경우에는블록회수에요구되는데이터복사의양이크고, 블록회수를통하여재확보할수있는데이터저장공간이작으므로플러시동작을수행하는것이바람직하다. 만약쓰기버퍼에저장된유효데이터의비율이기준값 (M%) 이하인것으로판별되면, 버퍼플러시동작이수행될것이다 (S120). 즉, 쓰기버퍼에저장된유효한데이터는컨트롤러의제어하에디스크로옮겨질것이다. 만약쓰기버퍼에저장된유효데이터의비율이기준값 (M%) 이상인것으로판별되면, 블록회수동작이수행될것이다 (S130). 블록회수동작은앞서설명된방법들중어느하나를이용하여수행될수있다. 예를들면, 데이터저장장치의쓰기버퍼가물리주소사상을이용하여관리되는경우, 도 5 내지도 7 에서설명된방법에따라블록회수동작이수행될수있다. 이에반해서, 데이터저장장치의쓰기버퍼가가상주소사상을이용하여관리되는경우, 도 8 내지도 10 에서설명된방법에따라블록회수동작이수행될수있다. 블록회수동작은상술한과정들을통해무효블록을회수하는단계 (S131) 와블록회수동작이완료되었는지의여부를판별하는단계 (S132) 를포함한다. 계속해서도 11 을참조하면, 블록회수동작이수행되는동안, 호스트로부터데이터전송동작이요청되었는지의여부가판별될것이다 (S140). 호스트로부터데이터전송동작이요청되는경우, 블록회수동작은일시중지되고호스트에의해서요청된데이터전송동작이처리될것이다 (S150). 이와동시에, 타이머가리세트될것이다. 여기서타이머는다음과같은이유때문에사용될것이다. 호스트로부터데이터읽기 / 쓰기요청이발생한경우, 높은확률로가까운미래에또다시데이터읽기 / 쓰기요청이발생함이이분야에잘알려져있다. 따라서, 본발명에서제안하는블록회수기법에서는, 블록회수동작이이루어지고있는동안에호스트에서데이터읽기 / 쓰기요청이발생하면일단블록회수동작을현재상태에서중지하고우선적으로호스트로부터의데이터읽기 / 쓰기요청을처리한다. 호스트로부터의데이터요청에대한처리를완료한이후에는, 미리정해진시간동안더이상호스트로부터의데이터요청이발생하지않을때까지기다렸다가블록회수동작을재개한다. 미리정해진시간동안호스트로부터데이터전송동작이요청되는지를판별하기위해서타이머가사용될것이다. 일단데이터전송동작이처리되면, 타이머가만료되었는지의여부가판별될것이다 (S160). 타이머가만료되지않은것으로판별되면, 절차는 S140 단계로진행한다. 타이머가만료된것으로판별되면, 절차는블록회수동작이재개되도록 S130 단계로진행할것이다. S132 단계에서블록회수동작이완료된것으로판별되면, 블록회수절차는종료될것이다. 본발명에따른블록회수동작은유효한데이터를플래시메모리내의한메모리블록에서다른블록으로옮기기위한데이터복사동작을필요로한다. 이러한데이터복사동작은플래시메모리의데이터읽기, 쓰기, 그리고블록소거동작들을포함하며, 이러한동작들을수행하는데시간이소요될것이다. 그러한까닭에, 도 11 에서설명된바와같이, 본발명에따른블록회수동작도중에호스트로부터데이터읽기및쓰기동작이요청되는경우, 그러한요청의응답시간에미치는 - 11 -
영향을최소화하기위해서는블록회수작업이백그라운드로이루어진다. 즉, 블록회수동작에는호스트에의해서요청되는데이터전송동작보다낮은우선순위가부여될것이다. 결정된우선순위에따라블록회수동작및데이터전송동작을적절히스케줄링함으로써호스트의데이터요청에대한응답시간의지연으로인한성능저하를최소화시키는것이가능하다. 본발명에따른데이터저장장치에있어서, 앞서설명된블록회수동작은도 1 의컨트롤러 (8) 의제어하에자동적으로수행될것이다. 또한, 앞서언급된타이머는컨트롤러 (8) 내에제공될것이다. 본발명의범위또는기술적사상을벗어나지않고본발명의구조가다양하게수정되거나변경될수있음은이분야에숙련된자들에게자명하다. 상술한내용을고려하여볼때, 만약본발명의수정및변경이아래의청구항들및동등물의범주내에속한다면, 본발명이이발명의변경및수정을포함하는것으로여겨진다. 발명의효과 상술한바와같이, 무효데이터가저장된메모리블록들을회수하여재사용함으로써버퍼플러시동작을최소화시키는것이가능하다. 버퍼플러시동작의최소화를통해데이터저장장치의전력모소를줄이는것이가능하다. 또한, 버퍼플러시동작의최소화를통해데이터저장장치의내구성을향상시킬수있다. 도면의간단한설명 도 1 은일반적인데이터저장장치를갖는컴퓨터시스템을개략적으로보여주는블록도이다. 도 2 및도 3 은도 1 에도시된데이터저장장치의버퍼플러시동작을설명하기위한도면들이다. 도 4 는본발명에따른데이터저장장치의블록회수동작을개략적으로설명하기위한도면이다. 도 5 내지도 7 은본발명의일실시예에따른데이터저장장치의블록회수동작을설명하기위한도면들이다. 도 8 은내지도 10 은본발명의다른실시예에따른데이터저장장치의블록회수동작을설명하기위한도면들이다. 도 11 은본발명에따른데이터저장장치의블록회수동작을설명하기위한흐름도이다. * 도면의주요부분에대한부호설명 * 1 : 데이터저장장치 2 : 쓰기버퍼 3 : 디스크 4 : 스핀들모터 5 : 헤드미디어 6 : 자성저장매체 7 : 호스트 8 : 컨트롤러 도면 - 12 -
도면 1 도면 2-13 -
도면 3 도면 4-14 -
도면 5-15 -
도면 6-16 -
도면 7 도면 8-17 -
도면 9-18 -
도면 10-19 -
도면 11-20 -