NAND Flash Memory 구조
- 소블록 플래시 메모리
- 각 블록은 32개의 페이지로 구성
- 각 페이지는 (512 + 16) byte로 구성
- 대블록 플래시 메모리
- 각 블록은 64개의 페이지로 구성
- 각 페이지는 (2048 + 64) byte로 구성
특징
- seek와 rotation 시간이 없다.
- 즉, 플래시메모리가 하드디스크보다 빠른 것이다.
- 그래서 플래시메모리는 어느 곳에 접근하든지 똑같은 비용이 발생한다.
- Asymmetric read/write
- write cost가 read 보다 10배 비싸다
- 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횟수를 모니터링하고 특정 블록에만 치우지지 않게 균등하게 분배하여 플래시 디스크가 깨지지 않게 안정성 확보하는 기술이다.
즉, 블록의 소거 횟수가 균등하도록 관리하는 것이다.
'3-1 학기 > File Structures' 카테고리의 다른 글
[파일처리] Ch9 Multilevel Indexing and B-Trees (0) | 2024.06.05 |
---|---|
[파일처리] Ch7 Indexing (0) | 2024.06.05 |
[파일처리] Ch3 Secondary Storage and System Software (0) | 2024.04.16 |
[파일처리] Ch2 Fundamental File Processing Operations (0) | 2024.04.16 |