page mapping

Learning stuff 2012. 12. 4. 13:57

1. Page Mapping

  Page-Level Mapping 은 가장 기초적인 FTL 중 하나이다. Page-Level Mapping[1] 기법은 page의 모든 사상 정보를 사상 테이블에 저장하여 관리한다. 따라서 logical page를 어느 physical page에나 사상 할 수 있어, Block mapping에 비해 더 유연하게 mapping 정보를 관리할 수 있고 random small write에 대한 성능이 우수하다. 하지만 사상 테이블의 크기가 커져 이를 저장하기 위해서는 많은 메모리를 필요로 하는 단점이 있다. 그림 1은 Page-level mapping에서 Mapping table의 정보를 관리하는 모습을 보여준다. Physical Block내에 존재하는 특정 페이지에 대해 페이지 업데이트 요청이 들어왔을 때 해당 페이지를 순서에 상관없이 비어있는 다른 공간에 저장하고 저장된 위치의 physical address를 Mapping table에 저장함으로써 Logical page address와 Physical page address를 re-mapping한다. 이후 업데이트전의 페이지 정보는 불필요하게 된다(invalid).


그림 1. Page address re-mapping for page



2. Hybrid Mapping

  Hybrid Mapping은 Page-Level Mapping 과 Block-Level Mapping의 장점만을 모아 필요에 따라 페이지 단위로 또는 블럭 단위로 데이터 처리를 한다. 그 구분은 일반적으로 요청된 데이터가 Sequential 로 나열된 것인지 아니면 Random 으로 나열된 데이터를 처리 하는 것인지에 따라 나뉜다. 다음 절에서는 각 FTL의 구동 방식에 대해 간단히 소개한다.


 2.1. FAST

  BAST에서는 페이지 업데이트가 발생하면 로그블록을 할당하여 out-of-place로 write 명령을 수행하는데, 로그블록과 데이터 블록은 1:1로 대응 되기 때문에 잦은 random write 발생시 로그 블록의 활용도가 떨어지고 블록 스레싱 현상이 발생할 수 있다.
그림2에서 보이듯이 FAST 로그블록과 데이터블록의 연관관계를 1:N으로 확장하여, 로그 블록에 더 이상 빈 공간이 없을 때 garbage collection을 실행하도록 하여 블록 스레싱 문제를 효율적으로 해결하고 Full merge의 비율을 줄일 수 있다. 또한 하나의 로그블록을 따로 관리하는데 이는 sequential write를 처리하기 위한 sequential 로그 블록이다. 하지만 FAST는 multiple task에 의한 multiple sequential write stream과 random write와 sequential write 명령이 혼합되어 들어오는 경우에는 효율적으로 처리하지 못한다.  
 

                               그림 2. Full associativity between logical sectos and log blocks


2.2. LAST

   그림 3에서 보이듯이 LAST도 FAST와 같이 로그블록을 sequential 로그블록과 random 로그블록으로 나눈다. Threshold 값을 기준으로 데이터의 크기에 따라 sequential write와 random write를 구분하여 두 명령이 혼합되어 들어오는 경우에도 효율적으로 처리할 수 있다. Random 로그 블록은 hot, cold 파티션으로 나누는데 해당페이지가 처음 random 로그 블록에 기록되는 경우 cold 파티션에 기록한 뒤, index k value을 두어 k value이내에 해당 페이지가 업데이트 되는 경우 hot 파티션에 기록한다. 자주 업데이트 되는 페이지를 hot 파티션에 모아둠으로써 merge operation의 횟수를 줄여 garbage collection의 효율을 얻을 수 있다. 또한 hot 파티션내의 특정 페이지들이 빈번하게 업데이트되어 하나의 블록이 모두 invalid 해지면(dead block) 한번의 erase operation만으로 로그 블록을 비울 수 있다.
 

그림 3 The overall architecture of the LAST scheme



출처 : http://matia.tistory.com/49

'Learning stuff' 카테고리의 다른 글

labview_2  (0) 2012.12.11
mearly machine diagram  (0) 2012.12.11
mosfet 기호  (0) 2012.09.11
엑셀로 피팅  (0) 2012.08.08
SBD  (0) 2012.08.03