1 / 32

플래시 메모리의 디스크 대체를 위한 FTL 알고리즘의 성능평가

플래시 메모리의 디스크 대체를 위한 FTL 알고리즘의 성능평가. Contents. 서론 플래시 메모리란 플래시 메모리의 특성 플래시 메모리의 문제점 관련연구 FTL 이란 FTL 알고리즘 분석 실험 실험 환경 실험 도구 – 시뮬레이터 실험 방법 실험 결과 및 분석 파일 시스템에 따른 각 알고리즘 분석 순차적 혹은 임의적인 I/O 에 따른 각 알고리즘 분석 알고리즘 특징에 따른 비교분석 안정성에 따른 분석 종합분석 결론 및 향후 발전 방향. 1. 서론.

tad
Download Presentation

플래시 메모리의 디스크 대체를 위한 FTL 알고리즘의 성능평가

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 플래시 메모리의 디스크 대체를 위한 FTL 알고리즘의 성능평가

  2. Contents • 서론 • 플래시 메모리란 • 플래시 메모리의 특성 • 플래시 메모리의 문제점 • 관련연구 • FTL이란 • FTL 알고리즘 분석 • 실험 • 실험 환경 • 실험 도구 –시뮬레이터 • 실험 방법 • 실험 결과 및 분석 • 파일 시스템에 따른 각 알고리즘 분석 • 순차적 혹은 임의적인 I/O에 따른 각 알고리즘 분석 • 알고리즘 특징에 따른 비교분석 • 안정성에 따른 분석 • 종합분석 • 결론 및 향후 발전 방향

  3. 1. 서론

  4. 플래시 메모리(Flash Memory) 란? • MP3플레이어, 디지털 카메라의 저장매체로 쓰임 • 저전력, 비휘발성, 고성능, 물리적 안정성, 휴대성등의 성질을 가짐 • 휴대용 장비들이 보조기억장치가 대용량화 • 휴대용 장비들 및 여러 장비들에서 디스크를 대체해야 할 필요성 • 정보저장 매체로써 요구되는 사항을 만족시키는 플래시 메모리를 선택

  5. 플래시 메모리의 특징 • 섹터(sector)에 대해 읽기(read)/쓰기(write)는 가능 • 디스크에서 가능한 덮어쓰기(over-write)는 불가능 • 쓰기전에 소거(erase)하는 연산이 필요함. • 소건연산은 일정량의 섹터를 모은 블록(block)단위로 수행 가능 • 읽기, 쓰기 , 소거연산을 수행하는데 소요시간의 차이 • 각 연산의 소요시간 비율을 1:7:63

  6. 플래시 메모리의 문제점 • 쓰기 전 소거 및 덮어쓰기를 효과적으로 처리하기 위한 방법이 필요 • 각 연산별 소요시간이 다른 점을 감안 하여 플래시 메모리가 최적 성능을 가지도록 해야 함 • 소거연산을 약 10만번 정도 수행한 블록은 사용 불가능 • 위의 문제점을 해결하기 위해 FTL을 두어 효과적인 FTL알고리즘이 필요

  7. 2. 관련연구

  8. FTL(Flash Translation Layer) • 플래시 메모리의 문제점을 해결하기 위해 도입 • 파일 시스템에서 디스크로 보내는 디스크 I/O를 플래시 메모리에서 동작할 수 있도록 함 • 현재 디스크에서 사용하고 있는 파일시스템을 그대로 도입 가능 • 플래시 메모리를 오래 쓰기 위해서, I/O에 대한 소요시간을 줄이기 위해서 효과적인 FTL알고리즘을 구현

  9. FTL 용어 설명 • 섹터와 블록 • 맵핑방법 • 섹터맵핑 • 블록맵핑 • 하이브리드 맵핑 • 논리적인 섹터/블록 번호, 물리적인 섹터/블록 번호 • in-place방식 • LSN에서 블록에서의 섹터의 수로 나누기 연산 ->PBN • LSN에서 블록에서의 섹터의 수로 나머지 연산 ->Offset • PBN의 Offset위치에 LSN의 정보를 기록 • out-of-place방식 • 어떠한 연산으로 인해 블록이 정해지면 LSN의 정보를 블록내의 차례대로 빈 섹터에 기록

  10. 블록 PBN 2 섹터 Ram-table data area LBN - 0 1 2 … 2 1 3 … PBN - space area FTL 알고리즘 • Misubish(MSBS) • 블록 맵핑 • 블록 내에 in-place로 쓰기연산을 수행 • 덮어쓰기 발생시 블록내에 빈 공간(space area)을 활용하여 out-of-place로 빈 공간에 쓰기를 수행 • 빈 공간이 없으면 합병 후 소거를 수행 • LBN을 계산할 때 빈 공간의 비율에 따라 LBN이 달라지므로 주의 • 효율적으로 빈 공간을 활용하기 위해 빈 공간의 비율을 조절해야 함 • 이 논문에서는 0.5(절반)을 비율로 정함

  11. 복사블록 블록 PBN PBN Ram-table 섹터 단순 / 복합 LBN - 0 1 2 … 2 1 3 … PBN - FTL 알고리즘 • FMAX(M-system) • 블록 맵핑 • 블록 내에 in-place로 쓰기연산을 수행 • 덮어쓰기 발생시 복사블록(mirroring block)내에 빈 공간(space area)을 활용하여 처음에는 in-place로 빈 공간에 쓰기를 수행 -> 단순 블록(SIMPLE block) • 덮어 쓰기 도중 복사블록에 이미 덮어쓰기가 되어있는 섹터에 대한 I/O가 들어오면 out-of-place로 복사블록에 쓰여진 다음부터 검색하여 빈 섹터에 쓰기 수행 -> 복합 블록(COMPOUND block) • 복사블록에 빈 섹터가 없으면 합병 후 소거를 수행 • 합병시 단순 복사블록 이면 교환(switch)연산을 수행 , 복합 복사블록이면 합병연산을 수행 • 교환연산은 복사블록의 PBN을 랩테이블에 갱신하고 원래 블록을 소거 • 항상 두 배의 블록이 필요하므로 논리적인 디스크 크기의 두 배에 해당하는 물리적인 플래시 메모리가 필요

  12. 이동블록 블록 PBN PBN Ram-table 섹터 LBN - 0 1 2 … 2 1 3 … PBN - 이동 - T F F … FTL 알고리즘 • Lexar Media(LM) • 블록 맵핑 • 램 테이블에 이동블록이 있는지 저장 • 블록 내에 in-place로 쓰기연산을 수행 • 덮어쓰기 발생시 이동블록(moved block)을 할당 하여 in-place로 쓰기수행 • 이동블록은 실제 램 테이블에 존재하는 LBN중에 하나 • 이동블록에 빈 섹터가 없으면 합병 후 소거를 수행 • 이동블록으로 옮겨진 섹터에 다시 덮어쓰기가 들어오면 합병연산을 수행하면서 덮어쓰기가 행해진 섹터에 대해서 최신으로 갱신 • 이동블록에 대한 I/O가 들어오면 이동블록을 합병 후 소거하고 다시 PBN을 할당

  13. 로그블록 블록 램 테이블 PBN PBN 0 1 2 … LBN - 섹터 2 1 3 … PBN - 로그 블록 테이블 0 1 2 … Log BN - 2 1 3 … PBN - FTL 알고리즘 • 로그 블록 기법(Log Block Scheme : BAST (Block Associative Sector Translation)) • 블록 맵핑 • 램 테이블에 로그블록도 블록맵핑 • 블록 내에 in-place로 쓰기연산을 수행 • 덮어쓰기 발생시 로그블록(log block)을 할당 하여 out-of-place로 쓰기수행 • 로그블록에 빈 섹터가 없으면 합병 후 소거를 수행 • 만약 빈 섹터가 없을 때 순차적으로 섹터가 저장이 되어있으면 교환연산 • 순차적이지 않으면 합병 연산 • 로그블록이 모두 사용 되고 있다면 그 중 하나를 선정하여 합병시키고 다시 PBN을 할당 받아 원래의 덮어쓰기에 대한 수행을 실시

  14. 순차쓰기용로그블록 임의쓰기용로그블록 블록 램 테이블 PBN PBN 0 1 2 … LBN - 순차쓰기용 로그 블록 2 1 3 … PBN - 임의쓰기용 로그 블록 테이블 PBN - 5 0 1 2 … PSN - 7 3 2 … LSN - FTL 알고리즘 • 로그 블록 기법(Log Block Scheme : FAST (Full Associative Sector Translation)) • 하이브리드 맵핑 블록 맵핑 • 램 테이블에 순차쓰기용 (sequence) 로그블록은 한 개의 블록만 존재하면 되기 때문에 PBN하나만 저장, 임의쓰기용 (random) 로그블록은 섹터 맵핑을 함 • 블록 내에 in-place로 쓰기연산을 수행 • 덮어쓰기 발생시 순차쓰기가 발생할 확률이 높은 블록의 0번째 오프셋에 대한 I/O이면 순차쓰기용 로그블록에 in-place로 덮어쓰기 연산 • 만약 전에 쓰여지고 있던 섹터가 있으면 합병 후 원래의 덮어쓰기에 대한 연산을 수행 • 순차쓰기용 블록을 모두다 채웠다면 순차적인 블록 이므로 교환연산 후 원래의 블록을 소거 • 임의쓰기일 경우 임의쓰기용 로그블록을 할당하여 큐(queue)방식으로 섹터의 처음부터 차례대로 쓰고 섹터 맵핑이 되어 있기 때문에 섹터 맴핑 테이블을 잘 갱신해 둔다. 여러 개의 임의쓰기용 로그블록에는 블록에서 일어나는 모든 임의적인 I/O에 대해 쓰기 연산을 수행 • 만약 임의쓰기용 로그블록에 빈 섹터가 없을 때 큐 방식으로 저장 하였으므로 임의쓰기용 로그블록 테이블의 앞쪽에 있는 블록부터 합병 후 소거 • 여러 블록에 대한 덮어쓰기가 하나의 임의쓰기용 로그블록에 쓰여져 있으므로 하나의 로그블록을 합병할때 여러 개의 블록 소거연산이 불릴 수 있음

  15. 4. 실험

  16. 실험 환경 • 휴대용 장비의 운영체제가 윈도우즈 계열이 많음 • 따라서 윈도우즈 계열에서 사용하는 파일 시스템인 FAT과 NTFS에서 디스크로 보내지는 I/O를 캡쳐 • I/O캡쳐는 윈도우즈 디바이스 드라이버중 디스크드라이버인 disk.sys에 하위 필터 드라이버로 캡쳐링 드라이버를 작성함 • 디스크로 보내지는 I/O에 대해 읽기와 쓰기의 구분, 시작섹터, 길이 세 부분을 저장하여 시뮬레이터에서 FTL을 적용하여 동작 시킴 • 시뮬레이터의 설명은 실험 도구부분에서 자세히

  17. 실험 도구 • Log-File Creater(LFC) • I/O캡쳐링을 위한 하위 필터 드라이버가 부착된 디스크로 파일을 복사 혹은 삭제 명령을 보내기 위해 만듬 • 작성 : C++ console • BOOL형의 배열을 만들어서 파일을 복사하였으면 TRUE삭제하면 FALSE로 설정함 • 복사 혹은 삭제를 원하는 횟수를 입력함 • 파일 종류 • MP3 : 22개 - 100M (개당 4M~6Mbytes : 평균 4.674Mbytes) • JPG : 433개 – 100M(개당 200K~250Kbytes : 평균 240Kbytes) • ANY : MP3와 JPG파일을 혼합하여 사용 • 횟수는 MP3는 1500회, JPG는 28500회 실시 • JPG파일의 크기가 MP3파일의 크기보다 1/19이기 때문에 비슷한 양의 파일을 복사/삭제하려면 19배의 횟수를 더 해줘야 함 • 파일은 RANDOM한 수를 받아서 사용 – random함수 사용 • ANY의 경우 여러 개의 process(MP3 :3개 , JPG : 5개)를 사용하여 I/O를 발생시킴 –횟수조절은 각각을 MP3 : 250회 , JPG : 150회를 실시(1500회)

  18. 실험 도구 • 사용환경 : Windows계열 운영체제 • 시뮬레이터 작성 : MFC • 시뮬레이터 디스크로 보내지는 I/O를 캡쳐링하여 저장한 로그파일을 읽어서 원하는 FTL알고리즘을 선택하여 임시로 만든 파일이나 RAM이 플래시메모리처럼 동작하도록 해서 I/O에 대한 플래시메모리에서 발생하는 읽기/쓰기/소거 연산의 횟수를 저장함 • FTL알고리즘은 알고리즘 설명부분을 참고하여 작성 • RAM으로 사용할때에는 spare data만 저장하여 RAM의 사용량을 줄여서 여러 개의 시뮬레이터가 동시에 동작하도록 함

  19. 실험 방법 • VM ware를 이용하여 가상으로 만든 디스크에 대한 I/O의 기록 • LFC를 이용하여 만든 log파일을 실시간으로 확인 할 수 있지만 실험의 편의를 위해 파일로 기록 • 기록된 파일은 파일종류와 파일 시스템 별로 나누어서 보관 • 시뮬레이터에서 저장한 I/O에 대한 플래시 메모리의 읽기/쓰기/소거의 횟수를 파일로 저장 • 엑셀에서 작업하기 위해 100개의 I/O단위로 묶음

  20. 실험 방법 • FTL시뮬레이터 • 알고리즘선택(list box) • 파일 찾기 • 검사 • 검사중 발생화면 • read/write의 비율(I/O)

  21. 5. 실험 결과 및 분석

  22. NTFS JPG 소요 시간 누적 그래프 NTFS JPG erase 횟수 누적 그래프 FAT JPG 소요 시간 누적 그래프 FAT JPG erase 횟수 누적 그래프 File System간 분석

  23. File System간 분석 • FAT 과 NTFS의 비교 • I/O 양에서 NTFS는 FAT에 비해 metadata에 대한 I/O가 많기 때문에 실제 데이터 보다 더 많은 양의 I/O가 발생한다. • 모든 파일의 copy/erase가 완료한 뒤의 소요시간은 NTFS가 더 소요된다. • Algorithm은 metadata에 대한 I/O에 의한 erase와 소요시간에서 조금의 차이를 보인다. • LM Algorithm과 Log Block Scheme Algorithm은 metadata에 대한 I/O가 적을수록 같은 block에 대한 overwrite가 줄어들기 때문에 moved block과 log block의 erase가 크게 적어진다.

  24. NTFS MP3 erase 횟수 누적 그래프 NTFS MP3 소요 시간 누적 그래프 NTFS JPG 소요 시간 누적 그래프 NTFS JPG erase 횟수 누적 그래프 파일 크기에 따른 분석

  25. NTFS ANY erase 횟수 누적 그래프 NTFS ANY 소요 시간 누적 그래프 NTFS MP3 소요 시간 그래프 NTFS MP3 erase 횟수 그래프 파일 크기에 따른 분석

  26. 파일 크기에 따른 분석 • 파일 크기에 따른 비교 • JPG파일을 복사/삭제한 로그 파일이 MP3 파일을 복사/삭제한 로그 파일보다 더 많은 I/O가 발생한 것을 알 수 있다. JPG 파일은 크기가 작기 때문에 더 많은 횟수로 파일을 복사/삭제 실시했고, 이 때문에 각 파일의 메타 데이터에 대한 쓰기 혹은 덮어쓰기가 더 많이 발생 하였다. • MSBS , FMAX • 각각의 블록은 모두 복사 블록 혹은 여유 공간(spare area)을 가지기 때문에 순차적인 쓰기나 임의적인 쓰기에 거의 관계없이 일정한 성능을 보인다. 따라서 소거횟수와 소요시간이 파일 크기에 따라 큰 차이를 보이지 않는다. • LM , FAST • 이 두 가지 알고리즘은 순차적인 덮어쓰기 대하여 고정 섹터 방식으로 대응하기 때문에 소거 횟수를 많이 줄 일 수 있다. 하지만 LM에서는 항상 고정 섹터 방식을 사용하기 때문에 JPG의 경우에 소거횟수가 많이 증가 하였다. • Log Block Scheme • 로그블록을 사용하기 때문에 FAST와 거의 유사한 소거 횟수를 보인다. 임의적인 덮어쓰기가 많이 발생하는 JPG의 경우 메타 데이터에 대한 소거횟수가 증가하여 MP3의 경우보다 소요시간에서 차이를 보인다.

  27. Algorithm 특성에 따른 비교 분석 • LM vs MSBS • overwrite에 대해 LM은 항상 in-place로 대응하고, MSBS는 항상 out-of-place로 대응하기 때문에 write와 erase 횟수에서의 더 적은 결과를 가진다. 하지만 read횟수에서 큰 차이를 보여 소요시간 측면에서 MSBS가 더 좋지 않다. • Log Block Scheme & FAST vs Others • 하이브리드 맵핑을 하는 Log Block Scheme과 FAST에 비해 나머지 알고리즘들은 read와 erase의 횟수에 큰 차이를 가진다. 따라서 Log Block을 사용하는 것이 더 좋다.

  28. Algorithm 특성에 따른 분석 • FMAX vs FAST • 한 개 block내에 simple/compound block으로 구분하여 대응한 FMAX는 sequence I/O와 random I/O를 완전히 구분하여 log block기법으로 대응한 FAST에 비해 모든 면에서 뒤진다. • FAST vs BAST • 같은 Log Block 기법을 사용한 두 Algorithm은 erase횟수에서는 거의 차이를 보이지 않는다. 편차에서의 차이는 Algorithm 적으로 한번에 여러 개의 block을 erase해야 하는 FAST가 더 큰 면을 보인다. • Hybrid mapping기법과 in-place와 out-of-place를 동시에 사용하는 FAST가 BAST보다 write와 erase 측면에서 더 좋은 성능을 가져 평균 소요시간은 FAST가 더 앞선다.

  29. 안정성에 따른 분석 • 전체 결과의 평균과 표준 편차이다. • Log Block을 사용한 Algorithm과 사용하지 않은 Algorithm을 비교해 보면 Log block기법을 사용함으로써 모든 측면에서의 편차가 가장 적다. • 하이브리드 맵핑을 사용하면 read와 write를 줄일 수 있기 때문이다. • 하나의 Log Block을 erase할 때 여러 개의 데이터 블록이 erase될 수 있는 FAST기법이 Log Block과 데이터 블록 하나만 erase하는 Log Block Scheme보다 편차가 크다. 따라서 Log Block Scheme이 더 안정적이다.

  30. 종합분석 • 전체적인 성능은 FAST방식이 가장 좋다. -> hybrid mapping을 통해서 random overwrite의 경우와 sequence overwrite에 대해 가장 효과적으로 대응함 • File System은 전체적인 성능에 저하를 주지 않으나 NTFS가 메타 데이터에 대한 I/O가 많기 때문에 전체적인 I/O양이 FAT에 비해 현저히 많음 -> Flash Memory에는 FAT방식의 File System을 사용하는 것이 좋음 • 같은 양의 파일을 copy/erase 연산을 수행하였을 때 파일의 크기가 큰(MP3)경우가 작은 경우(JPG)보다 더 적은 소요시간과 erase횟수를 보임 -> random write/overwrite에 대해 더 좋은 성능을 보임

  31. 6. 향후 발전 방향

  32. 향후 발전 방향 • FAST방식처럼 하이브리드 맵핑 방식을 활용하여 다른 알고리즘들도 여러 가지 I/O에 대해 좀더 효과적인 대응 방안을 마련. • FAST의 단점인 임의쓰기용 로그블록이 큐 방식인 것과 순차쓰기용 로그블록이 하나인 것에 대한 해결책을 마련. • BAST의 경우 많은 양의 읽기연산을 해결해야 함. • FMAX와 MSBS는 원래의 플래시 메모리보다 훨씬 많은 양의 블록이 필요한 부분을 해결해야 함. • LM은 임의적인 쓰기/덮어쓰기에 대해 좀더 효과적인 대응이 필요. • I/O에 대해 시작 섹터와 길이가 넘어왔을 때 길이를 고려한 읽기/쓰기 연산을 제공. • 플래시 메모리의 저장 용량이 커짐에 따른 변화에도 잘 적응 할 수 있도록 제공. • 플래시 메모리의 블록은 약 10만 번 정도의 소거를 실시하면 사용할 수 없는 블록이 되므로 전체적인 소거연산 평준화가 필요.

More Related