AngelPlayer`s Diary

5. 평가

5.1 시뮬레이션 방법론

전체 플래시 시스템 아키텍처에서 섹션 4에 제시된 FTL 알고리즘을 구현

물리적 메모리 계층은 실제 플래시 메모리와 동일한 특성을 가진 플래시 에뮬레이터에 의해 시뮬레이션 된다.

 

그림 1의 파일 시스템 계층은 FAT 파일 시스템으로 추정되며, 많은 임베디드 시스템에 폭넓게 사용됨

그림 13은 FAT 파일 시스템의 디스크 포맷을 보여줌

-> 부팅 섹터, 하나 이상의 파일 할당 테이블, 루트 디렉토리, 볼륨 파일이 포함되어 있다.

볼륨 파일에 비해 부팅 섹터, 파일 할당 테이블, 루트 디렉토리에 해당하는 논리 공간이 더 자주 엑세스 된다.

 

시뮬레이션을 위해, FAT 파일 시스템이 파일 쓰기 요청을 받을 때, 블록 장치 드라이버에 발급하는 다양한 접근 패턴을 얻었다.

 

Symbian과 Digicam의 실제 워크로드(작업 할당량)의 성능 결과

  1) 심비안 OS에서 1MB 파일 복사 작업의 워크로드

  2) 디지털 카메라에서의 워크로드

 

디지털 카메라의 접근 패턴은 대부분 순차적, 반면 심비안의 접근 패턴은 무작위 패턴이 많음

세부적으로, 디지털 카메라의 접근 패턴은 작은 랜덤 쓰기와, 잦은 큰 순차적 쓰기를 포함하고,

심비안의 접근 패턴은 많은 랜덤 쓰기와, 드물게 큰 순차적 쓰기를 포함한다.

 

 

 

5.2 결과

그림 14는 디지털 카메라의 패턴에 대한 총 경과 시간을 보여준다.

x축 : 워크로드의 반복 횟수 Test Count

y축 : 총 경과 시간(밀리 초)

 

워크로드의 크기가 작기 때문에, 플래시 메모리는 워크로드를 한 번 실행한 후에는 사용되지 않는다.

-> 플래시 메모리가 사용 중일 때 FTL 알고리즘의 특성을 알아내기 위해, 워크로드 과정을 여러번 수행

초기에는 플래시 메모리가 비어 있으나, 시험 회수가 증가함에 따라 사용(점거)된다.

 

 

결과는 Log 체계가 최고의 성능을 제공한다는 것을 보여줌

Log 체계는 매핑을 위해 상당히 많은 RAM 자원을 소비하는 섹터 매핑에 비해 나은 성능을 보여줌

-> 디지털 카메라가 대부분 순차적 쓰기 작업으로 구성되기 때문

또한 log 체계는 대부분의 순차적 쓰기에서 이상적으로 작동

 

섹터 매핑은 lsn-psn 매핑 테이블을 사용하기 때문에, 모든 덮어쓰기 작업에 매핑 테이블을 업데이트 해야함

이는 논리 섹터를 덮어쓸 때마다 매핑 테이블의 변경 사항을 플래시 메모리에 기록 해야함을 의미

-> 로그 체계는 lbn-pbn 매핑을 사용하기 때문에 자주 발생하지 않음

 

실험에서 1 블록에 32개의 섹터

-> lsn-psn 매핑 테이블은 lbn-pbn 매핑보다 약 30배 더 자주 업데이트 되어야 함

섹터 매핑 체계는 소거 연산을 덜 발생시키지만, 전체 실행 시간은 로그 체계보다 길다.

 

 

 

 

 

 

 

그림 16과 17은 심비안 작업 부하에서 성능 결과를 보여줌

 

심비안 워크로드에서 섹터 매핑이 최상의 성능을 보여줌

디지털카메라와 다르게 심비안은 랜덤 쓰기 작업이 많음

-> 로그 체계에서는 섹터 매핑에 비해 지우기 작업 자주 발생

 

 

 

6. 결론

본 논문은 최첨단 FTL 알고리즘을 조사

섹터, 블록, 하이브리드 주소 매핑을 기반으로 FTL 알고리즘 분류법을 제공

'쓰기 전 지우기' 아키텍처를 극복하기 위해, 섹터 매핑 체계는 빈 섹터가 있는 경우 가능한 한 지우기 작업을 지연시킬 수 있어, 가장 좋은 성능을 보여준다.

하지만 섹터 매핑 체계는 상당한 양의 매핑 정보를 요구하기 때문에 임베디드 어플리케이션에서 적용되지 않는다.

-> 블록 매핑과 하이브리드 체계가 적용

 

블록 매핑 체계는 최소한의 블록 정보를 요구하지만 동일한 논리 섹터 번호를 빈번히 업데이트를 하면 성능이 저하된다.

하이브리드 매핑 체계는 동일한 논리 섹터 번호를 자주 업데이트하는 문제를 극복하지만, 블록 매핑 체계보다 많은 매핑 정보를 요구한다.

 

 

FTL 알고리즘을 설계할 때 또 다른 문제로 매핑 정보 관리가 있다.

현재 FTL 기법은 맵 블록 메소드와 블록별 메소드로 분류된다.

맵 블록 메소드는 매핑 정보를 저장하기 위해 전용 블록을 필요로 하지만, 블록 당 메소드는 각 플래시 메모리 블록에 매핑 정보를 저장

 

 

FTL 알고리즘을 설계할 때 RAM 사용량도 중요한 요소

현재 FTL 알고리즘은 RAM을 사용하여 논리-물리 매핑과, 사용 가능한 메모리 공간, 마모 상태 정보를 저장

-> FMAX, sector mapping, Log scheme, SSR, Mitsubishi 등 다양한 FTL 알고리즘이 구현

 

SSR처럼 하나의 논리적 블록에 하나의 물리적 블록이 매핑되면 FTL 성능이 저하

-> 미쓰비시의 공간 섹터(Spare Sectors)나 FMAX의 교체 블록(replacement blocks)을 이용하면 FTL 성능이 향상될 수 있음

 

FTL 알고리즘에서 논리 블록을 둘 이상의 블록에 매핑 하는 경우 병합 작업이 전체 성능의 핵심요인이 된다.

 

로그 체계는 작은 로그 블록과 많은 데이터 블록을 사용하는 좋은 해결 방안을 보여준다.

 

 

 

 

 

 

 

 

- 참고 문헌 -

A survey of Flash Translation Layer

http://idke.ruc.edu.cn/people/dazhou/Papers/AsurveyFlash-JSA.pdf

공유하기

facebook twitter kakaoTalk kakaostory naver band