아무튼 공부중/system programing

[시프] SSD BASIC

멍정 2023. 9. 20. 17:41

SSD에 대해 알아보자.

Overall Architecture

- Flash memory : 데이터 저장

- SSD Controller : 전체적인 SSD 시스템 제어 (flash memory에 있는 값을 꺼내오거나 넘겨주거나..)

- RAM Buffer(DRAM?) : SSD에서 필요한 연산을 도움

- Host-storage Interface : host와 SSD를 연결, I/O를 주고받음 ex. sata


NAND Flash Chip (Package)

무언가 전하량을 잘 옮겨서 경우의 수를 잘 만든다네요.

page는 block들로 이루어져있고,

block은 page로 이루어져있고

page는 데이터를 다루는(I/O) 최소 단위이다.

 

 


Host-Storage Interface

Physical connection(물리적 연결)

- Host랑 SSD가 연결하기 위한 방법.

1. SAS, SATA(전통적인 방법)

2. PCIe(Peripheral Component Interconnect Express)

-> 요즘 자주 쓰이는 더 좋은 방법인가?

SSD 제품은 물리적 연결 기술을 기반으로 그룹화 및 이름 지정 가능하다?


Communication protocal(통신 프로토콜)

 

AHCI(Advanced Host Controller Interface): SATA 사용을 위해 인텔이 정의함
•NVMe(Non-Volatile Memory Express): PCIe 사용을 위해 NVMe 커뮤니티에 의해 정의되었으며, 주요 기능에는 많은 심층 I/O 큐, 다양한 스토리지 유형 지원

 

그렇군요.

 


SSD Controller + DRAM

Flash translation layer(FTL)

- 저장장치 관리 시스템

-SSD와 HHD는 서로 다른 시스템을 갖고 있지만 host system은 기존에 사용하던 Block I/O요청을 사용하고 싶어하기 때문에 FTL에서 SSD가 아닌 척 숨겨줌(절차를 밟아줌)

 

Processor + DRAM for executing FTL

- FTL 실행을 위한 프로세서 + DRAM
- 일반 ARM 프로세서, 수 기가바이트의 DRAM 등등..

Flash controller

- DRAM과 기본 플래시 칩 간의 통신
- ONFi(Open NAND Flash Interface), JEDEC(Joint Electron Device Engineering Council)의 두 가지 프로토콜


Flash Chip Architecture

- SSD는 Chip으로 구성되어있다.

- Chip은 channels의 배열이다.

- Flash chip은 독립적인 입출력 처리 장치이다.

 

memory arrays

- Chip = multiple planes (1, 2, or 4)
- Plane = multiple blocks (thousands)
- Block = multiple pages (hundreds)
- Page = multiple cells (ten of thousands)

페이지 모아서 블럭모아서 플레인 모아서 칩!


The Size (Capacity) of an SSD

SSD size = # flash chips * flash chip size

Flash chip size = # planes * plane size

Plane size = # blocks * block size

Block size = # pages * page size

Example (calculate the size of the SSD with the following structures)

Page size = 4KB

# pages/block = 1,024

# blocks/plane = 512

# planes/chip = 2

# chips/SSD = 8

+FEMU는 blocks에!


Over-Provisioning(OP) Space

실제 담을 수 있는 양은 표시되는 것 보다 많다.

?

 

 


SSD Operations

•작업(읽기, 쓰기(프로그램), 지우기)의 기본 단위 
- "페이지" 단위의 각 읽기
- "페이지" 단위의 각 프로그램
- "블록" 단위의 각 소거
- 일반 페이지 크기는 4KB ~ 32KB

•일반 블록 크기는 수 메가바이트입니다


읽기쓰기는 다음 시간에 계속!