NCQ와 Flash Drive

NCQ (Native Command Queuing)

수신된 I/O의 실행 순서를 정해 불필요한 헤드 움직임을 줄여 성능을 개선하려는 목적으로 사용되는 기술.

  • 탐색 시간 최적화 알고리즘: 헤드 움직임을 최적화 하는 방향으로 명령 실행
  • 액세스 시간 최적화 알고리즘: 탐색 시간과 회전 지연 시간으로 성능을 최적화

Flash Drive

플래시 드라이브의 일종인 SSD(solid state drive)는 반도체 기반 solid state memory를 사용해 데이터를 저장하고 추출한다.

기업용 플래시 드라이브(EFD, Enterprise Flash Drive)는 기존 디스크 드라이브와 비교해 30배 높은 데이터 처리량과 10분의 1정도의 응답속도를 제공하며, 전력 소모량도 적다.

flash drive component & architecture

기존 디스크 드라이브와 호환을 위해 같은 커넥터를 사용한다.

구성요소

  • 컨트롤러 - 드라이브 동작 관리.
  • I/O 인터페이스 - 전력, 데이터 액세스 제공.
  • Mass Storage - 비휘발성 NAND 메모리 칩 배열. 데이터 저장.
  • Cache - data transaction의 임시 공간 혹은 버퍼.

채널

플래시 드라이브는 컨트롤러와 플래시 메모리 칩 사이에 다중 병렬 I/O 채널을 사용한다. 메모리 칩과 채널을 많이 사용할 수록 드라이브 내부 대역폭이 증가하여 성능이 좋아진다. 보통 8~24 채널을 사용한다.

메모리 칩

논리적 블록과 페이지 단위로 구성된다.

  • page

플래시 드라이브에서 읽거나 쓰는 가장 작은 object이다. 표준 크기는 없지만 일반적으로 4KB, 8KB, 16KB를 사용한다. LBA(logical block address)를 사용하는 디스크 드라이브와 같은 방식을 제공하기 위해 여러 데이터 블록 위에 연속적으로 걸쳐 있게 된다. 8 x 512B = 4KB 이므로, 4KB page는 연속된 주소의 8개의 데이터 블록을 가진다.

  • block

전통적인 하드 디스크 드라이브의 섹터에 있는 블록과 다른 개념이다. 여러 page를 그룹으로 묶어 block을 만든다. 한 block 당 32, 64, 혹은 128개의 page를 갖는다.

주요 특징

NAND Flash Memory

랜덤 데이터 액세스에 유리하다. 잘못된 블록이 탐지되면 ECC(Error Correcting Code)를 사용해서 데이터 무결성을 유지한다.

SLC(Single Level Cell)

MLC(multi-level cell)은 셀당 여러 비트를 저장할 수 있고, single-level cell은 한 비트만 저장할 수 있다. 하지만 SLC가 성능과 지속성 면에서 우수하다. 읽기 속도는 SLC가 MLC보다 두배 정도 빠르고, 쓰기 속도는 4배 정도 빠르다.

쓰기 레벨링

플래시 드라이브의 수명을 최대화 하기 위해 각 메모리 셀을 균일하게 사용하는 것이 좋다. 자주 업데이트 되는 데이터를 각각 다른 위치해 기록해 같은 셀을 계속 사용하는 것을 방지하는 것이 좋다.

728x90
반응형

'OS & Container > Storage' 카테고리의 다른 글

RAID 레벨  (0) 2022.03.15
RAID Array 구성요소, 기술  (0) 2022.03.08
데이터 액세스와 DAS  (0) 2022.02.27
디스크 드라이브 성능  (0) 2022.02.27
논리적 볼륨 매니저(LVM, Logical Volume Manager)  (0) 2022.02.26

+ Recent posts