블록 장치와 SSD

도건우·2024년 1월 8일
0

SSD와 FTL

목록 보기
1/4

블록 장치

블록 디바이스

데이터를 블록 단위로 읽고 쓸 수 있는 장치를 의미한다. 블록은 고정된 크기의 데이터 청크로, 파일 시스템이나 다양한 응용 프로그램에서 사용된다.

SSD, HDD, USB등이 블록 디바이스의 예시이다. 이러한 디바이스들은 블록 기반 데이터 엑세스를 지원하며 파일 시스템은 이러한 블록 디바이스들은 블록 기반의 데이터 엑세스를 지원하며, 파일 시스템은 이러한 블록 디바이스를 사용하여 데이터를 구성하고 관리한다.

프로그램에서 일반 파일을 읽거나 쓸 때 블록 입출력 요청이 생성되는데, 일반적으로 블록 크기는 4kb이며, 커널에서는 입출력 처리 기본단위로 블록을 사용한다. 블록 디바이스 내부에는 섹터 단위로 데이터를 처리하며, 일반적으로 섹터 크기는 512Bytes이다.

SSD

플래시 메모리 칩을 사용하여 데이터를 저장하고 검색한다. 랜덤 엑세스 시간이 빠르기 때문에 블록 단위의 데이터 엑세스에 효과적이며 블록 디바이스와 함께 사용된다.

NAND 플래시 메모리

NAND 플래시 메모리는 SLC, MLC, TLC, QLC과 같은 여러 셀 비트 수를 사용하는 버전으로 분류됩니다. 비트 수가 증가함에 따라 저장 용량이 증가하지만 쓰기 및 삭제의 성능과 수명에 영향을 미친다.

해당 플래시 메모리는 일반적으로 블록 단위로 데이ㅏ터를 읽고 쓰며 지울 수 있다. 하나의 블록은 여러 페이지로 구성되며, 페이지는 더 작은 데이터 단위로 이루어진다.

  1. 쓰기 : 플로팅 게이트에 전자를 주입하여 셀을 충전하는 과정
  2. 읽기 : 컨트롤 게이트에 약한 전압을 걸어서 데이터를 읽음
  3. 삭제 : 특정 블록의 모든 페이지를 지우는 것으로, P층에 강한 전압을 적용하여 플로팅 게이트의 전자를 모두 제거한다.

NAND 플래시 메모리는 한정된 쓰기/삭제 주기를 가지고 있기 때문에 wear-leveling 기술을 사용하여 특정 블록이 과도하게 손상되는 것을 방지한다. 쓰기/삭제 주기를 균등하게 분산시켜 전체 디바이스의 수명을 향상한다.

NAND flash wear-out

플로팅 게이트에 있는 oxide layer가 파괴되는 현상으로 program/erase가 반복적으로 일어나면 oxide layer가 파괴될 수 있다. 파괴된 셀을 사용이 불가능하다.

FTL(Flash Translation Layer)

SSD는 HDD와 다른 구조로 기존 파일 시스템에 맞지 않다. SSD자체의 컨트롤러 단계에서 FTL을 사용하여 기존 파일 시스템과 호환되도록 한다.

0개의 댓글