[시프] SSD BASIC
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
•일반 블록 크기는 수 메가바이트입니다
읽기쓰기는 다음 시간에 계속!