Digital Recipe

개발자를 위한 SSD (Coding for SSD) 본문

컴퓨터 공학/(분야별) 스토리지(SSD)

개발자를 위한 SSD (Coding for SSD)

노리터 2016. 8. 13. 21:50

이 글은 카카오 테크에 게시된 개발자를 위한 SSD 연결입니다.

아래 각 대제목에 관련 페이지가 연결 됩니다.



Part 1: 목차


Part 2: SSD의 아키텍처와 벤치마킹


SSD의 구조

1.1. NAND 플래시 메모리 셀

1.2. SSD의 구성

1.3. SSD의 생산 공정

벤치마킹과 성능 메트릭

2.1. 기본 벤치마킹

2.2. 프리 컨디셔닝 (Pre-conditioning)

2.3. 워크로드와 메트릭



Part 3: 페이지 & 블록 & FTL(Flash Translation Layer)


기본 오퍼레이션

3.1. 읽기 & 쓰기 & 삭제

3.2. 쓰기 예제

3.3. Write amplification

3.4. Wear leveling

FTL (Flash Translation Layer)

4.1. FTL의 필요성

4.2. 논리적 블록 맵핑 (Logical block mapping)

4.3. 업계 상황

4.4. Garbage collection




Part 4: 고급 기능과 내부 병렬 처리


고급 기능

5.1. TRIM

5.2. Over-provisioning

5.3. Secure Erase

5.4. Native Command Queueing (NCQ)

5.1. 전력 차단 보호 (Power-loss protection)

SSD의 내부 병렬 처리

6.1. 제한된 I/O 버스 대역폭

6.2. 병렬 처리

6.3. Clustered blocks




Part 5: 접근 방법과 시스템 최적화


액세스 패턴

7.1. 시퀀셜과 랜덤 I/O의 정의

7.2. 쓰기

7.3. 읽기

7.4. 동시 읽고 쓰기

시스템 최적화

8.1. 파티션 얼라인먼트 (Partition alignment)

8.2. 파일 시스템 파라미터

8.3. 운영 체제의 I/O 스케줄러

8.4. 스왑 (Swap)

8.5. 임시 파일


Part 6: 요약 – 개발자가 SSD에 대해서 알아야 할 것들


2016. 08. 03 Posted By Hoseok Seo



Comments