Ⅰ. 서론
최근 소셜 미디어, 개인 방송, 위치기반 서비스 등 모바일 앱의 수가 급증하고 있다[1, 2, 3]. 또한, 고화질 카메라를 이용하는 앱의 증가로 이를 지원하기 위한 스마트폰의 DRAM 용량이 늘어나고 있다[4,5]. 한편, DRAM은 휘발성 매체로 모든 셀에 지속적인 전원재공급(refresh) 연산을 수행해야 내용이 유지된다[6]. 따라서, 메모리 용량 증가 시 전력 소모도 그에 비례해 늘어난다. 최근 메모리 시스템의 전력 소모를 줄이기 위해 DRAM이 아닌 저전력의 비휘발성 메모리를 탑재하고자 하는 시도가 늘고 있다[6,7]. 비휘발성 메모리는 DRAM과 달리 전력 재공급 연산이 필요하지 않아 배터리 소모를 줄일 수 있으나, 쓰기 연산이 느리거나 쓰기 연산의 전력 소모가 큰 약점이 있다[6]. 이를 해결하기 위해서는 모바일 앱의 메모리 쓰기 연산 특성을 분석하고 이를 스마트폰 메모리 관리에 반영하는 기술이 필요하다.
본 논문은 모바일 앱의 메모리 쓰기 참조 트레이스를 추출하고 그 특성을 다양한 각도에서 분석하였다. 스마트폰 앱은 다양한 동적 라이브러리를 이용해서 개발되기 때문에 PC용 프로그램과는 상이한 메모리 주소 공간 구성 및 참조 특성을 나타낸다. 본 연구에서는 스마트폰 앱의 고유한 메모리 참조 특성을 쓰기 연산을 중심으로 시간 지역성, 참조 빈도, 인기편향성 등의 관점에서 분석한다. 본 논문의 연구 결과는 비휘발성 메모리가 스마트폰에 채택되는 시스템의 메모리 관리에 널리 활용될 수 있을 것으로 기대된다. 특히, 느린 스토리지의 성능을 완충하기 위해 연구되고 있는 캐싱 기법의 설계에 분석된 메모리 참조 특성이 활용될 수 있을 것이다[8, 9, 10].
II. 트레이스 추출 과정
메인메모리 접근 트레이스는 짧은 시간동안 대용량의 트레이스가 생성되기 때문에 트레이스 자체를 수집하기 위한 환경 구축에 제약이 심하다. 트레이스 수집 자체가 앱의 실행 속도를 수십 배 이상 저하시키므로 사용자에게 큰 오버헤드로 작용하여 스마트폰에 트레이스 추출 모듈을 삽입 후 사용자가 평소처럼 자연스럽게 스마트폰을 사용하도록 하는 것은 불가능하다. 따라서, 본 논문에서는 추출 모듈 주입 후 실험실에서 스마트폰 앱을 실행시키면서 트레이스를 추출하는 방법을 사용하였다. 트레이스를 추출하기 위해 메모리 디버깅 툴인 Val grind에 트레이스 추출 모듈을 삽입하였으며, 모바일 환경에서 Valgrind가 잘 동작하지 않아 안드로이드 환경에 맞게 포팅하는 작업을 수행한 후 최종단 캐쉬(Last Level Cache)에서 메인메모리로 내려오는 요청에 대한 트레이스 추출 모듈을 삽입하였다. 개발된 추출기를 이용하여 다양한 스마트폰 앱의 메모리 참조 트레이스를 추출하였으며, 그 중 본 논문에서는 Angrybirds, Mxplayer, Youtube 총 3가지 앱을 실행시킨 결과를 분석하였다.
한편, Valgrind는 시스템에 상당한 부하를 발생 시켜 앱 실행 시 일정 시간 후 강제 종료 현상을 일으킨다. 이에 따라 앱의 특성을 반영할 수 있는 충분한 트레이스를 추출하지 못하는 문제가 발생한다. 이를 해결하기 위해본 연구에서는 트레이스 분석 코드를 Valgrind에 직접 삽입하여 트레이스 추출 단계에서 분석 작업까지 한 번에 수행하도록 하였다. 이를 위해 Cachegrind의 cg_sim.c 파일에 분석 코드를 삽입하였으며, 분석 내용은 읽기 쓰기 비율, 메모리 풋프린트, 참조 카운트 등 기본적인 내용뿐 아니라 시간지역성과 참조 빈도 분석 등이 포함된다. 특히, 스마트폰의 메인메모리로 비휘발성 메모리가 사용될 경우 쓰기 연산의 지연 시간 및 에너지 소모 문제가 대두되므로, 본 논문에서는 쓰기 참조에 집중하여 트레이스 분석을 시행하였다.
III. 시간지역성 및 참조 빈도 분석
표 1은 앱 별로 추출된 메모리 참조 트레이스의 기본특성을 보여주고 있다. 전체적으로 쓰기 참조보다는 읽기 참조가 빈번한 성향을 나타내고 있어 일부 앱에서 쓰기 참조 비중이 높은 PC 환경의 메모리 참조와는 다소 상이한 특성을 나타내었다. 그림 1은 시간지역성이 메모리 쓰기 재참조에 미치는 영향을 표시하였다. 그림에서 x축은 페이지의 시간지역성 순위(즉, LRU 스택 거리)를나타낸다. 즉, 1위는 가장 최근에 참조된 페이지를 의미하고, 순위의 증가는 참조된 후 흐른 시간이 증가한 것을 나타낸다. 그림에서 검정색 그래프는 쓰기 기록만을 이용한 순위를 나타내고, 회색 그래프는 읽기와 쓰기 기록을 모두 이용해서 순위를 구한 것이며, 파란색 그래프는 읽기 기록만을 이용해서 순위를 구한 것이다. 그래프의 y 축은 해당 x축 순위에서 참조가 발생한 쓰기 횟수를 나타낸다.
표 1 실험에 사용한 트레이스 추출 정보
Table 1. Trace information extracted in the experiments.
그림에서 보는 것처럼 곡선들이 감소 함수 형태를 나타내었으며, 이는 최근에 참조된 페이지일수록 쓰기 연산이 발생할 가능성이 높음을 의미한다. 과거의 쓰기 기록만 활용하는 검은색 그래프와 읽기 쓰기 기록을 모두 활용하는 회색 그래프, 읽기 기록만을 활용하는 파란색 그래프를 비교해 보면, 최상위(10위권) 구간에서는 읽기 쓰기 기록을 모두 활용하는 방법(회색)이 가장 효과적이었으며, 그 이후의 구간에서는 쓰기 기록만을 활용하는 방법(검정색)과 읽기 쓰기 기록을 모두 활용하는 방법(회색)이 비슷한 분포를 나타내었다. 읽기 기록만을 활용하는 방법(파란색)은 쓰기 참조에 대한 예측에 그다지 효과적이지 않은 것으로 조사되었다.
그림 1. 시간 지역성 순위에 따른 메모리 쓰기 횟수
Fig. 1. Memory write counts based on temporal locality.
그림 2. 참조 빈도 순위에 따른 메모리 쓰기 발생 횟수
Fig. 2. Memory write counts based on reference frequency.
그림 3. 시간지역성과 참조 빈도의 미래 메모리 쓰기 발생 예측 효과
Fig. 3. Effects of temporal locality and reference frequency on estimating future memory writes.
시간지역성과 유사한 방법으로 과거의 참조 빈도가 미래의 메모리 쓰기 참조에 미치는 영향을 분석하였다. 이를 위해 매 시점 과거 참조 횟수에 따른 순위를 유지하고 각 순위의 페이지 중 쓰기가 일어난 빈도를 조사하였다. 그림 2에서 x축은 과거 참조 횟수에 기반한 페이지의 순위를 나타낸다. x축의 값이 1인 경우 과거에 참조 횟수가 가장 많았던 페이지를 의미하고, x축의 값이 커질수록 참조 횟수가 적었던 페이지를 의미한다. 검정색 그래프는 과거의 쓰기 참조 횟수만으로 순위를 구성한 것이고, 회색 그래프는 읽기 쓰기 횟수를, 파란색 그래프는 읽기 횟수만을 이용하여 순위를 구한 것이다. 그래프에서 y축은 해당 x축 순위에서 쓰기가 발생한 횟수를 나타낸다. 즉, 매 시점 페이지들의 참조 횟수 순위를 유지하고 있다가 쓰기가 발생한 순위에 대해 y값을 1씩 증가시키는 방식으로 그래프를 작성하였다. 그림에서 보는 것처럼 쓰기 참조에 대한 예측에 있어서는 과거의 쓰기 참조 기록만 사용하는 방식(검은색)이 읽기 쓰기 기록을 모두 활용하는 방식(회색)보다 더 효과적인 것으로 나타났다.
그림 3은 시간지역성과 참조 빈도 중 어떤 성질이 미래의 쓰기 참조를 예측하는데 더 영향력이 있는지를 보여주고 있다. 그림 1과 2의 분석 결과를 토대로 그림 3에서는 과거의 쓰기 참조 기록만을 이용한 결과를 표시하였다. 그림 3에서 보는 것처럼 순위가 높은 곳은 시간 지역성이 더 강한 성향을 나타내었으나 후순위 지역에서는 참조 빈도에 의한 예측이 시간 지역성에 비해 좀 더 우수한 것으로 확인되었다. 이는 PC 환경에서의 메모리 참조에 비해 시간 지역성이 더 강하게 나타난 것으로, 읽기 참조가 쓰기 참조에 비해 상대적으로 많은 스마트폰 환경에서의 메모리 참조의 고유한 특성에 기인한 것으로 파악된다.
그림 4. 메모리 페이지의 인기도 순위에 따른 누적 쓰기 참조 비율
Fig. 4. Cumulative ratio of write references for the given rankings of memory pages sorted by their popularity.
그림 5. 인기도 순위별 쓰기 참조 횟수 분포
Fig. 5. Number of write references that occurs on the given rankings of memory pages sorted by their popularity.
그림 6. 시간에 따른 메모리 페이지 참조 현황
Fig. 6. Memory pages that have been accessed as time progresses.
그림 7. 페이지 순위에 따른 쓰기 참조 카운트
Fig. 7. Write access counts as the page rankings are varied.
Ⅳ. 인기 편향도 분석
본 장에서는 스마트폰 앱별 메모리 참조의 인기 편향 도를 분석하였다. 이는 앱별 워킹셋 크기가 어느 정도이며, 적절한 메모리 크기를 어떻게 설정해야 하는지, 또한 DRAM과 비휘발성 메모리를 함께 사용할 경우 매체 구성을 어떤 비율로 해야 하는지 등의 설정에 필요한 분석으로 중요한 의미를 가진다. 이를 위해 각 앱에서 상위 몇 퍼센트의 페이지가 전체 쓰기 참조의 어느 정도를 차지하는지에 대하여 분석하였다. 그림 4는 누적 참조를 그래프로 표시한 것으로 그래프에 나타난 것처럼 상위 20%의 페이지가 전체 쓰기 참조의 50-60%를 차지하는 것을 알 수 있다.
그림 5는 페이지의 인기도 순위별 쓰기 참조 횟수를 나타낸 것이다. 그림에서 x, y축이 모두 로그 스케일로 표시되었기 때문에 인기편향도가 매우 강한 Zipf-like 분포를 나타내는 것을 알 수 있으며, 빨간색 직선은 이를 피팅한 그래프로 이 직선의 기울기가 Zipf-like 분포에서 정의되는 편향도 상수를 나타낸다. 이때, 편향도 상수가 1에 가까울수록 인기편향성이 강하다는 것을 의미한다. 분석 결과 Angrybirds, Mxplayer, Youtube의 편향도 상수는 각각 0.58, 0.56, 0.59를 나타내었다. 웹 서버 분석 연구에서 웹 페이지 참조의 편향도 상수가 0.8 정도인 것을 감안하면 이보다는 편향성이 다소 약하지만 비교적 편향성이 큰 분포를 나타내는 것을 알 수 있다[11]. 또한, 그림 5에서 보는 것처럼 그래프의 피팅이 곡선의 앞부분만을 대변하고 있어 인기도가 매우 낮은 후순위페이지까지 고려한다면 인기 편향성이 더 클 것으로 예상된다. 이러한 분석 결과를 토대로 비휘발성 메모리와 함께 소량의 DRAM을 쓰기 참조 흡수용으로 사용할 경우 DRAM의 크기를 어느 정도로 설정해야 할지에 대한 기본 정보를 파악할 수 있다.
그림 6은 각 앱별로 시간이 흐름에 따라 나타나는 메모리 참조 분포를 나타낸다. x축은 논리적인 시간을 나타내며 y축은 해당 시간에 참조된 페이지 번호를 나타낸다. 그래프 내의 수직선은 앱의 런치가 끝난 시점을 표시하였다. 그림에서 보는 것처럼 메모리 참조량은 처음 앱의 시작 부분이 전체 참조의 50% 이상을 차지하는 것으로 나타났다. 그러나, 실제 앱의 시작 부분에 해당하는 물리적인 시간은 전체 트레이스 수집 시간의 25% 정도에 지나지 않는다. 이는 앱의 시작 시 많은 메모리 참조가 집중되고 있음을 의미한다. 또한, 메모리 참조가 특정 주소 영역에서 집중적으로 발생하는 것을 그림을 통해 확인할 수 있다.
그림 7은 앱별로 총 쓰기 횟수에 기반한 페이지 순위와 해당 순위의 쓰기 횟수를 나타낸다. 그림에서 보는 것처럼 대부분의 쓰기 참조가 일부 인기 있는 페이지에 집중되는 것을 알 수 있다. 특히, 4GB의 논리메모리 공간에서 실제 쓰기가 발생하는 페이지의 수는 5, 000∼ 12, 000개 정도에 불과하며, 이 중 상당 부분은 1회의 쓰기만 발생하고 대부분의 쓰기는 극소수의 페이지에 집중되는 것을 확인할 수 있다.
V. 결론
최근 스마트폰의 메모리로 DRAM이 아닌 비 휘발성 메모리를 사용하여 배터리 소모를 줄이고자 하는 시도가 늘고 있다. 본 논문은 이러한 시스템의 설계에 중요한 정보를 제공할 수 있는 모바일 앱의 메모리 쓰기 참조 특성을 분석하였다. 구체적으로 쓰기 연산의 시간지역성, 참조 빈도, 인기편향성 등을 분석하였으며, 미래의 쓰기 연산 예측을 위해서는 시간지역성이 참조 빈도보다 더 좋은 정보를 제공한다는 점을 확인하였다. 또한, 쓰기 연산관점에서 페이지의 인기 편향성이 매우 크게 나타나서 상위 20%의 페이지가 전체 쓰기 연산의 50-60%를 나타냄을 확인하였다. 본 논문의 연구 결과는 비휘발성 메모리가 메인 메모리로 채택되는 미래의 스마트폰 시스템에서 쓰기 효율성을 가진 메모리 관리 기법 설계에 널리 활용될 수 있을 것으로 기대된다.
References
- K. Lee, K. Kim, and J. Oh, "A study on step number detection using smartphone sensors for position tracking," The Journal of The Institute of Internet, Broadcasting and Communication (IIBC), vol. 18, no. 3, pp.119-125, 2018. DOI: http://doi.org/10.7236/JIIBC.2018.18.3.119
- E. Lee and H. Bahn, "Electricity usage scheduling in smart building environments using smart devices," The Scientific World Journal, vol. 2013, article 468097, pp.1-11, 2013. DOI: http://doi.org/10.1155/2013/468097
- D. S. Lee and H. S. Huh, "Improvement of indoor positioning accuracy using smart LED system implementation," Journal of the Korea Academia-Industrial cooperation Society(JKAIS), vol. 22, no. 1 pp. 786-791, 2021. DOI: http://doi.org/10.5762/KAIS.2021.22.1.786
- B. Choi, S. Eom, C. Kim, and H. Lee, "Counterfeit bill identification based on deep learning using smartphone camera shooting images," Journal of KIIT, vol. 19, no. 3, pp. 1-8, 2021. DOI : http://doi.org/10.14801/jkiit.2021.19.3.1
- N. Islam and R. Want, "Smartphones: past present and future", IEEE Pervasive Computing, vol. 13, no. 4, pp. 89-92, 2014. DOI: http://doi.org/10.1109/MPRV.2014.74
- S. Nam, K. Cho, and H. Bahn, "Tight evaluation of real-time task schedulability for processor's DVS and nonvolatile memory allocation," Micromachines, vol. 10, no. 6, 2019. DOI: http://doi.org/10.3390/mi10060371
- D. Kim, E. Lee, S. Ahn, and H. Bahn, "Improving the storage performance of smartphones through journaling in non-volatile memory," IEEE Trans. Consumer Electronics, vol. 59, no. 3, pp. 556-561, 2013. DOI: http://doi.org/10.1109/TCE.2013.6626238
- O. Kwon, H. Bahn, and K Koh, "Popularity and prefix aware interval caching for multimedia streaming servers," Proc. IEEE CIT Conf., pp. 555-560, 2008. DOI: http://doi.org/10.1109/CIT.2008.4594735
- T. Kim and H. Bahn, "Implementation of the storage manager for an IPTV set-top box," IEEE Trans. Consumer Electronics, vol. 54, no. 4, pp. 1770-1775, 2008. DOI: http://doi.org/10.1109/TCE.2008.4711233
- J. Park, H. Lee, S. Hyun, K. Koh, and H. Bahn, "A cost-aware page replacement algorithm for NAND flash based mobile embedded systems," Proc. ACM EMSOFT Conference, pp. 315-324, 2009. DOI: http://doi.org/10.1145/1629335.1629377
- H. Bahn, H. Lee, S. Noh, S. Min, and K. Koh, "Replica-aware caching for web proxies, Computer Communications, vol. 25, no. 3, pp. 183-188, 2002. DOI: http://doi.org/10.1016/S0140-3664(01)00365-6