3. 동기 & 목적
• 앱 개발자들이 flash memory의 I/O 동작을 이해하면 더 빠른 앱을 개발할 수
있을 것이라고 생각했습니다.
• 성능을 측정하고 I/O 동작의 분석을 통해 원인을 설명하는 방식으로 진행됩니
다.
• 최근에 출시된 또는 곧 만나게 될 flash memory를 소개하겠습니다.
• 설명을 위한 도표는 이해를 돕기 위해 간략하게 표현하였고, 이로 인해 다소
과장된 부분이 있을 수 있습니다.
23. 주요 interface 속도
0 100 200 300 400 500 600
LTE Category 10 DL
IEEE 802.11ac
SD card class 10
eMMC 5.0
USB 3.0
UFS 2.0 HS-GEAR3
MB/s
24. UFS에서 압축 앱 성능 test
00:16
00:26
01:20
00:09
00:17
00:36
0
20
40
60
80
100
A B C
eMMC UFS
25. eMMC는 Half, UFS는 Full
UFS
READ
WRITE
storage READ
WRITE
ZIPhost ZIP
TIME
READ
WRITE
ZIP
READ
WRITE
ZIP
READ WRITEstorage READ WRITE
ZIPhost ZIP
TIME
eMMC
READ READ
ZIP
26. eMMC는 Half, UFS는 Full
UFS
READ
WRITE
storage READ
WRITE
ZIPhost ZIP
TIME
READ
WRITE
ZIP
READ
WRITE
ZIP
READ WRITEstorage READ WRITE
ZIPhost ZIP
TIME
eMMC
READ READ
ZIP
27. eMMC, UFS 전송 방식 차이점
UFS
eMMC
TIME
storage
host
TIME
storage
host
D0 D1 D2 D3
28. UFS, thread에 따른 BM 결과
0.0
2.0
4.0
6.0
8.0
1 4 8
number of thread
4KB Random Read
DDP QDP
0.0
2.0
4.0
6.0
8.0
1 4 8
number of thread
4KB Random Write
DDP QDP
35. Barrier Command
W W WWF W W F F
RAM
RAM
NAND
RAM
NAND
NAND
W W WWB W W B B
G1 G2 G3
Keep an order
RAM NAND
RAM
36. SQLite의 write request 빈도
0%
20%
40%
60%
80%
100%
web
surfing
camera facebook contacts file copy hangouts movie
player
image
viewer
music
player
YouTube video
recording
Journal Meta SQLite Normal Data
37. SQLite의 chunk size 비율
0%
20%
40%
60%
80%
100%
web
surfing
camera facebook contacts file copy hangouts movie
play
image
viewer
music
play
YouTube video
recording
4KB 8KB 12~16KB 20~32KB 36~64KB 68~512KB
41. 마치며
• 가능하면 multi-thread, flush는 필요할 때만.
• Ecosystem이 발전하면 더 빠른 I/O 환경이 구축.
• 효율적인 RAM 사용.
• 4K UHD 영상, VR 촬영으로 더 빠르고 많은 저장 공간 필요.
• 빠른 flash memory를 활용할 수 있는 앱도 있었으면...