본문 바로가기
3-1 학기/File Structures

[파일처리] NAND Flash Memory Overview

by bona.com 2024. 4. 16.

NAND Flash Memory 구조

  • 소블록 플래시 메모리
    • 각 블록은 32개의 페이지로 구성
    • 각 페이지는 (512 + 16) byte로 구성
  • 대블록 플래시 메모리
    • 각 블록은 64개의 페이지로 구성
    • 각 페이지는 (2048 + 64) byte로 구성

특징

  1. seek와 rotation 시간이 없다.
    • 즉, 플래시메모리가 하드디스크보다 빠른 것이다.
    • 그래서 플래시메모리는 어느 곳에 접근하든지 똑같은 비용이 발생한다.
  2. Asymmetric read/write
    • write cost가 read 보다 10배 비싸다
  3. no in-place update(덮어쓰기)
    • 한 번 바뀌면 다시 write를 하지 못한다.
    • 즉, 데이터가 차있으면 다시 overwrite를 하지 못한다는 특징을 가지고 있다.
    • 그래서 이를 해결하기 위해 빈 페이지로 만드는 작업을 하는데, 이를 erase라고 부른다. (erase의 단위는 페이지의 단위가 아니라 페이지를 포함하고 있는 block단위이다. 즉, block을 통째로 지우기 때문에 비용은 더 발생하는 것이다.)

+ 이런 erase방식은 굉장히 많은 비용이 들기 때문에 실제로 플래시 메모리는 이 방식보다는 FTL layer를 통한 out-of-place uapdate 방식을 사용한다.

FTL

기능

  • 플래시 메모리의 물리적 제약을 소프트웨어적으로 해결했다.
  • 파일 시스템의 논리적 주소를 플래시 메모리의 물리적 주소로 매핑
  • 다른 자리 덮어쓰기 (out-of-place-update)로 업데이트 이전 데이터가 유지되었다.

Sector Mapping

* lsn : logical sector number

lsn = 9, psn = 3이면 9번은 3번 페이지에 mapping이 되어있다는 의미이다.

 

write(9,A) 를 통해 9번 자리에 A라는 데이터를 넣고 싶다는 걸 나타낸다.

그러면 위의 그림처럼 mapping이 되는 페이지에 넣어준다.

 

  • 장점: mapping하는 것이 단순하다. 빈 페이지만 할당해주고, 할당된 페이지만 업데이트 해주면 되기 때문이다. 따라서 earse 연산을 최소화할 수 있다.
  • 단점: 테이블을 관리하기 위한 공간들이 많아진다. 제일 작은 단위인 페이지를 썼기 때문에 공간을 많이 차지할 수밖에 없다.

 

Block Mapping

block의 경우 단위가 더 크기 때문에 간략화 된 걸 볼 수 있을 것이다.

 

페이지 4개를 하나의 block으로 만들어서 이를 어디다가 저장할 지는 offset을 통해서 정한다.

이때 offset은 나머지를 통해 구한다.

  • 장점: 작게 만들 수 있다.
  • 단점: block 단위이기 때문에 빈 블록을 할당해줘야 한다.

 

Hybrid Mapping

지금까지 설명한 방법과는 다르게 첫 번째 비어있는 페이지에 바로 쓰는 방법이다.

 

Wear-Leveling

writing횟수를 모니터링하고 특정 블록에만 치우지지 않게 균등하게 분배하여 플래시 디스크가 깨지지 않게 안정성 확보하는 기술이다.

즉, 블록의 소거 횟수가 균등하도록 관리하는 것이다.