BPLRU
 

\"사용자
 연속적인 읽기와 쓰기 요구에 대해 SSD는 하드디스크와 비슷하거나 더 좋은 performance를 가지고 있지만 random writes에서는 더 안좋은 performance가 나타난다. 이런 SSD의 poor performance는 데스크탑이나 서버 시스템에 크게 영향을 미칠수 있다. BPLRU는 flash storage의 이런 random write performance를 향상시키기 위한 새로운 write buffer management sheme이다. 이는 세가지 핵심기술(Block-level LRU, Page padding, and LRU compensation)을 사용한다.
1. Block-level LRU

  Block-level LRU는 FTL에서 merge operations의 수를 최소화 하기위해 erasable block의 크기를 고려하여 LRU list를 경신한다.
사용자 삽입 이미지
  8개의 sector는 the write buffer에 있다. 그리고 각각의 블록은 4개의 sector를 포함한다. sector 15가 다시 기록될 때, 전체 블록은 LRU list의 head로 이동한다. sector 12는 최근에 access되지 않았더라도 LRU list의 앞에 있다. free space가 필요할때, 최근에 가적 적게 사용된 블록이 victim block으로 선택된다. 그리고 victim block내의 모든 sector는 순간 cache로부터 flushed 된다. block 1은 victim block로 선택되고 sectors 5와 6은 flushed 된다.
2. Page padding

  Page padding은 the buffer flushing cost를 줄이기 위해 fragmented write patterns을 sequential write patterns로 바꿔준다.
  BPLRU는 victim block에 없는 몇 개의 page를 읽는다.그리고 순차적으로 블록 범위내의 모든 sector를 기록한다. Page padding은 불필요한 reads와 writes를 하는 것처럼 보일 수 있지만 그것은 비싼 full merge를 효율적인 switch merge로 바꿀 수 있기 때문에 더 효과적이다.
사용자 삽입 이미지
  The victim block은 오직 두 개의 sectors(12 and 15)를 가지고 있다. 그리고 BPLRU는 page padding을 위해 sectors 13과 14를 읽는다. 그러면, sectors 12-16은 순차적으로 기록된다. Log-block FTL에서, log block은 the writes 할당된다. 그리고, the log block은 현재의 데이터 블록을 복구시킨다. 로그블록은 블록내의 모든 sector에 순차적으로 기록되기 때문이다. 즉, switch merge가 발생한다.
3. LRU compensation

  LRU compensation은 random writes를 더 효과적으로 하여 RAM을 사용하기 위해 the LRU list를 조절한다.
사용자 삽입 이미지
  BPLRU block 2가 전체적으로 순차적으로 기록되는 것을 인지하고, 그것을 LRU list의 끝으로 이동시킨다. 나중에 더 많은 공간이 필요해지면 그 블록은 victim block으로 선택되고 flushed 될 것이다.

'Embedded Lab > FLASH MEMORY' 카테고리의 다른 글

[FTL 기술흐름]  (0) 2013.06.28
[NAND 플래시의 종류]  (0) 2012.10.17
[SSD 개론]  (0) 2012.09.06
Posted by cyj4369
,