SlideShare a Scribd company logo
1 of 43
Download to read offline
Mobile App에서
효율적인 storage
접근 방법
장재영
Mobile Solution Development Group
0.
시작하기 전
동기 & 목적
• 앱 개발자들이 flash memory의 I/O 동작을 이해하면 더 빠른 앱을 개발할 수
있을 것이라고 생각했습니다.
• 성능을 측정하고 I/O 동작의 분석을 통해 원인을 설명하는 방식으로 진행됩니
다.
• 최근에 출시된 또는 곧 만나게 될 flash memory를 소개하겠습니다.
• 설명을 위한 도표는 이해를 돕기 위해 간략하게 표현하였고, 이로 인해 다소
과장된 부분이 있을 수 있습니다.
Flash Memory Solution
smart phone
AP
storage
controller
NAND
Flash Memory
HOST
용량은 클 수록 더 빠르다
D0 D0 D1 D0 D1 D2 D3
× 4 write
1
2
3
4
1
2
1
x 1 x 2 x 4
SDP DDP QDP
SDP와 DDP 동작 차이
TIME
host
D0 D0
TIME
host
D0
D1
SDP DDP
처리 시간은
거의 같다.
R R
controller
flash
storage
controller
flash
storage
분석 방법
READ WRITE
TIME
device
latency
host latency
device
latency
performance
AP Storage
Analyzer
LBA, size, time
linux layer에 따른 성능
Storage
File System File System에 따라 성능 편차.
Block Layer I/O scheduler에 따라 성능 편차.
Device Layer H/W 사용 여부에 따라 성능 편
차.
Apps ?
1.
App에서 어떻게
I/O 성능을 개선시킬
수 있을까?
Test Scenario
ZIP dummy.zip
dummy folder
압축 시간 측정
기대하는 host behavior
READ WRITEstorage READ WRITE
ZIPhost ZIP
TIME
NG
READ WRITEstorage READ WRITE
ZIPhost ZIP
TIME
Good
압축 앱 성능 test 결과
00:16
00:26
01:20
0
20
40
60
80
100
A B C
A & B 앱 log 분석
storage
kernel
thread1
R
storage
kernel
app B ZIPR
thread2
R
thread3
R
ZIP
ZIP R
R
ZIP R
ZIP R
ZIP R
ZIP
app A
ZIPR ZIPR
2.
Multi-Thread에 더 강한
Command Queue
eMMC version history
eMMC 4.41
eMMC 4.5
eMMC 5.0 eMMC 5.1
0
100
200
300
400
500
2010 2011 2012 2013 2014 2015
MB/s
Command
Queue
flagship model
NCQ (Native Command Queuing)
https://en.wikipedia.org/wiki/Native_Command_Queuing
Flash memory에서 CQ
HOST
W1 R2 R3 W4 R5 W6
Queue
R2 R3 R5 W1 W4 W6
Reordering
Flash Memory
CQ와 w/o CQ 동작 차이
TIME
queue
host R R
READ
R
READ
CQ
TIME
storage
host R
READ
w/o CQ R
READ
R
READ
READflash
storage
SDP와 QDP에서 CQ 동작 차이
QDP CQ
TIME
storage
host
queueing
SDP CQ
READ
READ
READ
TIME
storage
host
READ
queueing
Thread에 따른 CQ BM 결과
0.0
0.5
1.0
1.5
2.0
1 2 4 8
number of thread
4KB Random Read
0.0
0.5
1.0
1.5
2.0
1 2 4 8
number of thread
4KB Random Write
3.
더 빠른 flash memory
UFS
eMMC & UFS 속도 spec
eMMC 4.41
eMMC 4.5
eMMC 5.0 eMMC 5.1
UFS 2.0
HS-GEAR3
0
100
200
300
400
500
600
2010 2011 2012 2013 2014 2015
MB/s
주요 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
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
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
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
eMMC, UFS 전송 방식 차이점
UFS
eMMC
TIME
storage
host
TIME
storage
host
D0 D1 D2 D3
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
eMMC, UFS의 CQ 동작 차이점
1. Read
2. Write
3. Delete
4. Read
5. Write
Host request
HOST eMMC
R1 W2
Wait
R4 W5
Delete3
HOST UFS
ALL
empty
4.
C앱이 느린 이유
Flush
C앱 log 분석
READ WRITEstorage
host
TIME
R ZIP W F
READ
R
FLUSH
storage
host
TIME
READ
R ZIP
READ
R ZIP
WRITE
W
app C
latency
READ
Rapp B
Flash memory에서 flush 동작
DATA
RAM
NAND
Flush
RAM
NAND NAND
RAM
Auto Flush
Flush CMD
NAND
RAM
시간적, 공간적 손해
TIME
host W W W
TIME
W F W F W F
storage
host
storage
Flush가 필요한 이유
1. Read
2. Write 0x02
3. Read 0x02
4. Read
5. Write
1. Read
2. Read 0x02
3. Read
4. Write 0x02
5. Write
Reorder
Old data가
읽혀짐
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
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
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
5.
앞으로
Ecosystem
Linux Block IO:
Introducing
Multi-queue SSD
Access on Multi-
core Systems
Google’s project ARA
UFS
마치며
• 가능하면 multi-thread, flush는 필요할 때만.
• Ecosystem이 발전하면 더 빠른 I/O 환경이 구축.
• 효율적인 RAM 사용.
• 4K UHD 영상, VR 촬영으로 더 빠르고 많은 저장 공간 필요.
• 빠른 flash memory를 활용할 수 있는 앱도 있었으면...
Q&A
고맙습니다

More Related Content

What's hot

Revisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerRevisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerYongseok Oh
 
C22 Oracle Database を監視しようぜ! by 山下正/内山義夫
C22 Oracle Database を監視しようぜ! by 山下正/内山義夫C22 Oracle Database を監視しようぜ! by 山下正/内山義夫
C22 Oracle Database を監視しようぜ! by 山下正/内山義夫Insight Technology, Inc.
 
0からわかるAlfresco
0からわかるAlfresco0からわかるAlfresco
0からわかるAlfrescoMoritakaSoma
 
Redis on NVMe SSD - Zvika Guz, Samsung
 Redis on NVMe SSD - Zvika Guz, Samsung Redis on NVMe SSD - Zvika Guz, Samsung
Redis on NVMe SSD - Zvika Guz, SamsungRedis Labs
 
Challenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelChallenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelDVClub
 
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なことAlfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なことJun Terashita
 
[B25] 【詳解】インメモリーデータベース SAP HANA:永続化の仕組みと障害/災害対応を踏まえた運用を理解しよう!by Toshihisa Hanaki
[B25] 【詳解】インメモリーデータベース SAP HANA:永続化の仕組みと障害/災害対応を踏まえた運用を理解しよう!by Toshihisa Hanaki[B25] 【詳解】インメモリーデータベース SAP HANA:永続化の仕組みと障害/災害対応を踏まえた運用を理解しよう!by Toshihisa Hanaki
[B25] 【詳解】インメモリーデータベース SAP HANA:永続化の仕組みと障害/災害対応を踏まえた運用を理解しよう!by Toshihisa HanakiInsight Technology, Inc.
 
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoAngel Borroy López
 
Intro To Alfresco Part 1
Intro To Alfresco Part 1Intro To Alfresco Part 1
Intro To Alfresco Part 1Jeff Potts
 
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...Vietnam Open Infrastructure User Group
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLinaro
 
Linux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewLinux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewRajKumar Rampelli
 
Ziptillion boosting RISC-V with an efficient and os transparent memory comp...
Ziptillion   boosting RISC-V with an efficient and os transparent memory comp...Ziptillion   boosting RISC-V with an efficient and os transparent memory comp...
Ziptillion boosting RISC-V with an efficient and os transparent memory comp...RISC-V International
 
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1Angel Borroy López
 
Deploying openstack using ansible
Deploying openstack using ansibleDeploying openstack using ansible
Deploying openstack using ansibleopenstackindia
 
MIPI DevCon Seoul 2018: Troubleshooting MIPI M-PHY Link and Protocol Issues
MIPI DevCon Seoul 2018: Troubleshooting MIPI M-PHY Link and Protocol IssuesMIPI DevCon Seoul 2018: Troubleshooting MIPI M-PHY Link and Protocol Issues
MIPI DevCon Seoul 2018: Troubleshooting MIPI M-PHY Link and Protocol IssuesMIPI Alliance
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅NAVER D2
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...J V
 

What's hot (20)

Revisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS SchedulerRevisiting CephFS MDS and mClock QoS Scheduler
Revisiting CephFS MDS and mClock QoS Scheduler
 
C22 Oracle Database を監視しようぜ! by 山下正/内山義夫
C22 Oracle Database を監視しようぜ! by 山下正/内山義夫C22 Oracle Database を監視しようぜ! by 山下正/内山義夫
C22 Oracle Database を監視しようぜ! by 山下正/内山義夫
 
0からわかるAlfresco
0からわかるAlfresco0からわかるAlfresco
0からわかるAlfresco
 
Redis on NVMe SSD - Zvika Guz, Samsung
 Redis on NVMe SSD - Zvika Guz, Samsung Redis on NVMe SSD - Zvika Guz, Samsung
Redis on NVMe SSD - Zvika Guz, Samsung
 
VNX Overview
VNX Overview   VNX Overview
VNX Overview
 
Challenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelChallenges in Using UVM at SoC Level
Challenges in Using UVM at SoC Level
 
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なことAlfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
Alfresco勉強会#34 Alfrescoをカスタマイズする時に知っておくと便利なこと
 
[B25] 【詳解】インメモリーデータベース SAP HANA:永続化の仕組みと障害/災害対応を踏まえた運用を理解しよう!by Toshihisa Hanaki
[B25] 【詳解】インメモリーデータベース SAP HANA:永続化の仕組みと障害/災害対応を踏まえた運用を理解しよう!by Toshihisa Hanaki[B25] 【詳解】インメモリーデータベース SAP HANA:永続化の仕組みと障害/災害対応を踏まえた運用を理解しよう!by Toshihisa Hanaki
[B25] 【詳解】インメモリーデータベース SAP HANA:永続化の仕組みと障害/災害対応を踏まえた運用を理解しよう!by Toshihisa Hanaki
 
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
 
Intro To Alfresco Part 1
Intro To Alfresco Part 1Intro To Alfresco Part 1
Intro To Alfresco Part 1
 
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
 
Linux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewLinux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver Overview
 
第6回「VMware vSphere 5」(2011/08/11 on しすなま!)
第6回「VMware vSphere 5」(2011/08/11 on しすなま!)第6回「VMware vSphere 5」(2011/08/11 on しすなま!)
第6回「VMware vSphere 5」(2011/08/11 on しすなま!)
 
Ziptillion boosting RISC-V with an efficient and os transparent memory comp...
Ziptillion   boosting RISC-V with an efficient and os transparent memory comp...Ziptillion   boosting RISC-V with an efficient and os transparent memory comp...
Ziptillion boosting RISC-V with an efficient and os transparent memory comp...
 
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
 
Deploying openstack using ansible
Deploying openstack using ansibleDeploying openstack using ansible
Deploying openstack using ansible
 
MIPI DevCon Seoul 2018: Troubleshooting MIPI M-PHY Link and Protocol Issues
MIPI DevCon Seoul 2018: Troubleshooting MIPI M-PHY Link and Protocol IssuesMIPI DevCon Seoul 2018: Troubleshooting MIPI M-PHY Link and Protocol Issues
MIPI DevCon Seoul 2018: Troubleshooting MIPI M-PHY Link and Protocol Issues
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 

Viewers also liked

애자일에대한오해와진실
애자일에대한오해와진실애자일에대한오해와진실
애자일에대한오해와진실Sangcheol Hwang
 
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)SangIn Choung
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)SangIn Choung
 
2010 SW Testing Trend
2010 SW Testing Trend2010 SW Testing Trend
2010 SW Testing TrendMurian Song
 
When develpment met test(shift left testing)
When develpment met test(shift left testing)When develpment met test(shift left testing)
When develpment met test(shift left testing)SangIn Choung
 
[142] how riot works
[142] how riot works[142] how riot works
[142] how riot worksNAVER D2
 
Istqb 5-테스트관리-2015-배포
Istqb 5-테스트관리-2015-배포Istqb 5-테스트관리-2015-배포
Istqb 5-테스트관리-2015-배포Jongwon Lee
 
Tdd objective c
Tdd objective cTdd objective c
Tdd objective cUA Mobile
 
테스트자동화 성공전략
테스트자동화 성공전략테스트자동화 성공전략
테스트자동화 성공전략SangIn Choung
 
스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요Insub Lee
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅영기 김
 

Viewers also liked (12)

애자일에대한오해와진실
애자일에대한오해와진실애자일에대한오해와진실
애자일에대한오해와진실
 
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
 
2010 SW Testing Trend
2010 SW Testing Trend2010 SW Testing Trend
2010 SW Testing Trend
 
TDD
TDDTDD
TDD
 
When develpment met test(shift left testing)
When develpment met test(shift left testing)When develpment met test(shift left testing)
When develpment met test(shift left testing)
 
[142] how riot works
[142] how riot works[142] how riot works
[142] how riot works
 
Istqb 5-테스트관리-2015-배포
Istqb 5-테스트관리-2015-배포Istqb 5-테스트관리-2015-배포
Istqb 5-테스트관리-2015-배포
 
Tdd objective c
Tdd objective cTdd objective c
Tdd objective c
 
테스트자동화 성공전략
테스트자동화 성공전략테스트자동화 성공전략
테스트자동화 성공전략
 
스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅
 

Similar to [144]mobile앱에서 효율적인 storage 접근 방법

클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기YoungSu Son
 
MySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOMySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOI Goo Lee
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법YoungSu Son
 
FORGIS-SERVER 사용자 교육
FORGIS-SERVER 사용자 교육FORGIS-SERVER 사용자 교육
FORGIS-SERVER 사용자 교육ssuserd7017e
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화NAVER D2
 
Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트SANG WON PARK
 
Chapter5 embedded storage
Chapter5 embedded storage Chapter5 embedded storage
Chapter5 embedded storage Hyun Wong Choi
 
Chapter5 embedded storage
Chapter5 embedded storage Chapter5 embedded storage
Chapter5 embedded storage Hyun Wong Choi
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1Jinkyoung Kim
 
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316기한 김
 
Android 성능 지표와 Oreo 의 개선사항
Android 성능 지표와  Oreo 의 개선사항 Android 성능 지표와  Oreo 의 개선사항
Android 성능 지표와 Oreo 의 개선사항 YoungSu Son
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가NAVER D2
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWSMatthew (정재화)
 

Similar to [144]mobile앱에서 효율적인 storage 접근 방법 (20)

클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
 
MySQL Deep dive with FusionIO
MySQL Deep dive with FusionIOMySQL Deep dive with FusionIO
MySQL Deep dive with FusionIO
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
 
Oracle History #8
Oracle History #8Oracle History #8
Oracle History #8
 
OPENMARU APM 브로셔
OPENMARU APM 브로셔OPENMARU APM 브로셔
OPENMARU APM 브로셔
 
FORGIS-SERVER 사용자 교육
FORGIS-SERVER 사용자 교육FORGIS-SERVER 사용자 교육
FORGIS-SERVER 사용자 교육
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
 
Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트
 
Android Applications on Galaxy S (장기성)
Android Applications on Galaxy S (장기성)Android Applications on Galaxy S (장기성)
Android Applications on Galaxy S (장기성)
 
Chapter5 embedded storage
Chapter5 embedded storage Chapter5 embedded storage
Chapter5 embedded storage
 
Chapter5 embedded storage
Chapter5 embedded storage Chapter5 embedded storage
Chapter5 embedded storage
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
 
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
 
SAP HANA vs Oracle
SAP HANA vs OracleSAP HANA vs Oracle
SAP HANA vs Oracle
 
현실적 PWA
현실적 PWA현실적 PWA
현실적 PWA
 
OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316
 
Chapter2 ap group11
Chapter2 ap group11Chapter2 ap group11
Chapter2 ap group11
 
Android 성능 지표와 Oreo 의 개선사항
Android 성능 지표와  Oreo 의 개선사항 Android 성능 지표와  Oreo 의 개선사항
Android 성능 지표와 Oreo 의 개선사항
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
 

More from NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

More from NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

Recently uploaded

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 

Recently uploaded (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

[144]mobile앱에서 효율적인 storage 접근 방법

  • 1. Mobile App에서 효율적인 storage 접근 방법 장재영 Mobile Solution Development Group
  • 3. 동기 & 목적 • 앱 개발자들이 flash memory의 I/O 동작을 이해하면 더 빠른 앱을 개발할 수 있을 것이라고 생각했습니다. • 성능을 측정하고 I/O 동작의 분석을 통해 원인을 설명하는 방식으로 진행됩니 다. • 최근에 출시된 또는 곧 만나게 될 flash memory를 소개하겠습니다. • 설명을 위한 도표는 이해를 돕기 위해 간략하게 표현하였고, 이로 인해 다소 과장된 부분이 있을 수 있습니다.
  • 4. Flash Memory Solution smart phone AP storage controller NAND Flash Memory HOST
  • 5. 용량은 클 수록 더 빠르다 D0 D0 D1 D0 D1 D2 D3 × 4 write 1 2 3 4 1 2 1 x 1 x 2 x 4 SDP DDP QDP
  • 6. SDP와 DDP 동작 차이 TIME host D0 D0 TIME host D0 D1 SDP DDP 처리 시간은 거의 같다. R R controller flash storage controller flash storage
  • 7. 분석 방법 READ WRITE TIME device latency host latency device latency performance AP Storage Analyzer LBA, size, time
  • 8. linux layer에 따른 성능 Storage File System File System에 따라 성능 편차. Block Layer I/O scheduler에 따라 성능 편차. Device Layer H/W 사용 여부에 따라 성능 편 차. Apps ?
  • 9. 1. App에서 어떻게 I/O 성능을 개선시킬 수 있을까?
  • 10. Test Scenario ZIP dummy.zip dummy folder 압축 시간 측정
  • 11. 기대하는 host behavior READ WRITEstorage READ WRITE ZIPhost ZIP TIME NG READ WRITEstorage READ WRITE ZIPhost ZIP TIME Good
  • 12. 압축 앱 성능 test 결과 00:16 00:26 01:20 0 20 40 60 80 100 A B C
  • 13. A & B 앱 log 분석 storage kernel thread1 R storage kernel app B ZIPR thread2 R thread3 R ZIP ZIP R R ZIP R ZIP R ZIP R ZIP app A ZIPR ZIPR
  • 15. eMMC version history eMMC 4.41 eMMC 4.5 eMMC 5.0 eMMC 5.1 0 100 200 300 400 500 2010 2011 2012 2013 2014 2015 MB/s Command Queue flagship model
  • 16. NCQ (Native Command Queuing) https://en.wikipedia.org/wiki/Native_Command_Queuing
  • 17. Flash memory에서 CQ HOST W1 R2 R3 W4 R5 W6 Queue R2 R3 R5 W1 W4 W6 Reordering Flash Memory
  • 18. CQ와 w/o CQ 동작 차이 TIME queue host R R READ R READ CQ TIME storage host R READ w/o CQ R READ R READ READflash storage
  • 19. SDP와 QDP에서 CQ 동작 차이 QDP CQ TIME storage host queueing SDP CQ READ READ READ TIME storage host READ queueing
  • 20. Thread에 따른 CQ BM 결과 0.0 0.5 1.0 1.5 2.0 1 2 4 8 number of thread 4KB Random Read 0.0 0.5 1.0 1.5 2.0 1 2 4 8 number of thread 4KB Random Write
  • 21. 3. 더 빠른 flash memory UFS
  • 22. eMMC & UFS 속도 spec eMMC 4.41 eMMC 4.5 eMMC 5.0 eMMC 5.1 UFS 2.0 HS-GEAR3 0 100 200 300 400 500 600 2010 2011 2012 2013 2014 2015 MB/s
  • 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
  • 29. eMMC, UFS의 CQ 동작 차이점 1. Read 2. Write 3. Delete 4. Read 5. Write Host request HOST eMMC R1 W2 Wait R4 W5 Delete3 HOST UFS ALL empty
  • 31. C앱 log 분석 READ WRITEstorage host TIME R ZIP W F READ R FLUSH storage host TIME READ R ZIP READ R ZIP WRITE W app C latency READ Rapp B
  • 32. Flash memory에서 flush 동작 DATA RAM NAND Flush RAM NAND NAND RAM Auto Flush Flush CMD
  • 33. NAND RAM 시간적, 공간적 손해 TIME host W W W TIME W F W F W F storage host storage
  • 34. Flush가 필요한 이유 1. Read 2. Write 0x02 3. Read 0x02 4. Read 5. Write 1. Read 2. Read 0x02 3. Read 4. Write 0x02 5. Write Reorder Old data가 읽혀짐
  • 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
  • 39. Ecosystem Linux Block IO: Introducing Multi-queue SSD Access on Multi- core Systems
  • 41. 마치며 • 가능하면 multi-thread, flush는 필요할 때만. • Ecosystem이 발전하면 더 빠른 I/O 환경이 구축. • 효율적인 RAM 사용. • 4K UHD 영상, VR 촬영으로 더 빠르고 많은 저장 공간 필요. • 빠른 flash memory를 활용할 수 있는 앱도 있었으면...
  • 42. Q&A