본문 바로가기
Study/OS

플래시 기반 파일시스템의 개요

by SeulKom 2009. 10. 17.

플래시메모리란?

기계적인 동작이 없는 비휘발성 순수 반도체 저장장치
  - 내장형 : NAND flash memory
  - 외장형 : USB drive, Flash SSD(Solid State Disk)

장점
  - Faster access time
  - Lower power
  - Resistance of temperature and impact
  - Small size
  - Light weight 
  - Noiseless

단점
  - 각 셀들은 1에서 0으로만 수정 가능 : erase 후 write (in-place update 불가능)
  - 마모 (wear) : 최대 소거 횟수 제한
     → Number of Program (NOP) : 소거후 페이지당 쓰기 횟수

종류
1. NOR 플래시메모리
 - byte 단위의 읽기 연산 / 블록 단위의 소거 : 읽기 성능은 좋지만 쓰기 및 소거 성능은 낮음
 - 코드 실행용으로 사용

2. NAND 플래시메모리
 - byte 단위 접근 불가 / 페이지 단위(read/write), 블록 단위(erase)
 - 쓰기 및 소거 연산 성능이 NOR보다 좋다
 - 집적도, 가격, 전력 소비, 수명이 좋음
 - RAM interface가 불가능
 - NOP가 적음
 - 데이터 저장용으로 사용

성능 향상 기법
1. FTL (Flash Transition Layer)
 - 데이터를 0에서 1로 변환하려면 해당 블록을 초기화(해당 블록의 데이터들을 모두 1로 변환) 하고 표현
 - 오버헤드가 크다. (제자리 갱신 제약사항)
  → Mapping table을 다른 페이지에 생성하여 테이블에서 수정
      (스페어 영역에 유효/무효를 기록하여 사용할 수 있는지 없는지를 파악) 

  (a) Block level mapping
    장점 : mapping table 크기 적음
    단점 : block 내의 다른 모든 page가 복사되어야 함

  (b) Page level mapping
    장점 : 효율적으로 매핑 변경 처리
    단점 : mapping table 크기가 커짐

 
 ☞ Garbage Collection
   Mapping 연산이 계속 일어나면 무효화 페이지가 늘어나며 사용자가 쓸 수 있는 공간 감소
    → 주기적으로 무효화 페이지를 정리해 주는 연산 사용 

 ☞ Wear-Leveling (평준화 쓰기 방식)
  모든 셀을 고르게 사용하는 기법   
   → SLC(Single Level Cell) : 한 셀당 10만 번 사용 가능

2. Reed-Solomon, BCH 기법
 - 일부 bit가 제대로 동작 하지 않는 실행시간 bad block 발생
  → 공장 출하시 처음 사용될 때 스페어 영역의 초기 bad block 표시 위치를 조사하여 mapping에서 제외
      1 bit 에러를 bad block으로 처리하면 bad block 개수가 너무 많아지므로 page 당 1bit error를 검출하고 수정
      이를 위해 스페어 영역의 ECC비트를 이용해 기록
 
3. Flash-aware File System
 (a) Log structured file system 
   - 제자리 갱신이 불가능한 제약을 피함 (플래시메모리 전체영역을 하나의 로그로 봄)
   - 쓰기 요청 : 항상 로그의 꼬리부터 (순차적, 디스크 탐색 필요 없음)
   - 장점 
    로그의 시작과 끝이 쓰기 가능한 자유 영역
    쓰기가 진행되어 자유영역 크기가 일정 수준 이하로 작아질 때 소거 동작
    로그의 시작과 끝에서 시작하여 단 방향으로 늘어남 → 마모 평준화
   - 단점
    슈퍼 블록이나 inode 같은 파일 시스템 → metadata의 위치 역시 고정되어 있지 않고 변함
    데이터 검색시 필요한 데이터의 로그를 찾아야 됨
    마운트 시 플래시 메모리 전체 scan → 마운트 시간이 길어지고 메모리 사용량이 커짐
   
   

4. Copy-back (내부 복사)
 - 데이터의 복사를 칩 내부에서 해결해 데이터의 전송 오버헤드를 줄임

5. Chip-interleaving
 - 여러 개의 플래시 칩을 병렬로 연결해 읽기와 쓰기의 대역폭을 늘림