skip to main content
research-article

A Storage Device Emulator for System Performance Evaluation

Published:20 October 2015Publication History
Skip Abstract Section

Abstract

The performance and characteristics of the storage devices used in embedded systems can have a great influence on the overall end user experience. When building embedded systems or designing new storage device components, it is important for the designers to be able to evaluate how storage devices of different characteristics will affect the overall system performance. Storage device emulation enables a system's performance to be evaluated with simulated storage devices that are not yet available. In storage device emulation, the emulated storage device appears to the operating system (OS) as a real storage device and its service timings are determined by a disk model, which simulates the behavior of the target storage device. In the conventional storage device emulators, because the OS is running continuously in the real-time domain, the amount of time that the emulators can spend on processing each I/O request is limited by the service time of each corresponding I/O request. This timing constraint can make emulating high-speed storage devices a challenge for the conventional storage device emulators. In this article, we propose an OS state pausing approach to storage device emulation that can overcome the timing constraints faced by the conventional storage device emulators. By pausing the state of the OS while the storage device emulator is busy, the proposed emulator can spend as much time as it needs for processing each I/O request without affecting the performance of the emulated storage device as perceived by the OS. This allows the proposed storage device emulator to emulate storage devices that would otherwise be challenging or even impossible for the conventional storage device emulators. In addition, the main task of storage device emulation is offloaded to an external computer to minimize the impact of the emulation workload on the target machine. The proposed storage device emulator is implemented with the Linux OS1 on an embedded system development board. Experimental results show that the full-system performance benchmarks measured with the proposed storage device emulator are within 2% differences compared to the results of the reference system.

References

  1. Nitin Agrawal, Leo Arulraj, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2012. Emulating goliath storage systems with David. Trans. Storage 7, 4 (February 21012), Article 12, 21 pages. DOI:http://doi.acm.org/10.1145/2078861.2078862 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. John S. Bucy, Jiri Schindler, Steven W. Schlosser, and Gregory R. Ganger. 2008. The DiskSim Simulation Environment Version 4.0 Reference Manual. CMU-PDL-08-101, Parallel Data Laboratory, Carnegie Mellon University.Google ScholarGoogle Scholar
  3. M. D. Canon, D. H. Fritz, J. H. Howard, T. D. Howell, M. F. Mitoma, and J. Rodriquez-Rosell. 1980. A virtual machine emulator for performance evaluation. Commun. ACM 23, 2 (February 1980), 71--80. DOI:http://doi.acm.org/10.1145/358818.358821 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Li-Pin Chang. 2010. A hybrid approach to NAND-flash-based solid-state disks. IEEE Trans. Comput. 59, 10 (October 2010), 1337--1349. DOI:http://dx.doi.org/10.1109/TC.2010.14 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Yuan-Hao Chang, Po-Liang Wu, Tei-Wei Kuo, and Shih-Hao Hung. 2012. An adaptive file-system-oriented FTL mechanism for flash-memory storage systems. ACM Trans. Embed. Comput. Syst. 11, 1 (April 2012), Article 9, 19 pages. DOI:http://doi.acm.org/10.1145/2146417.2146426 Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. In Hwan Doh, Jongmoo Choi, Donghee Lee, and Sam H. Noh. 2007. Exploiting non-volatile RAM to enhance flash file system performance. In Proceedings of the 7th ACM & IEEE international conference on Embedded software (EMSOFT’’07). ACM, New York, NY, 164--173. DOI:http://doi.acm.org/10.1145/1289927.1289955 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. David Eklov, Nikos Nikoleris, David Black-Schaffer, and Erik Hagersten. 2011. Cache pirating: Measuring the curse of the shared cache. In Proceedings of the 2011 International Conference on Parallel Processing (ICPP’11). IEEE Computer Society, Washington, DC, 165--175. DOI:http://dx.doi.org/10.1109/ICPP.2011.15 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Gregory R. Ganger and Yale N. Patt. 1998. Using system-level models to evaluate I/O subsystem designs. IEEE Trans. Comput. 47, 6 (June 1998), 667--678. DOI:http://dx.doi.org/10.1109/12.689646 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Jeff Gibson, Robert Kunz, David Ofelt, Mark Horowitz, John Hennessy, and Mark Heinrich. 2000. FLASH vs. (Simulated) FLASH: closing the simulation loop. SIGARCH Comput. Archit. News 28, 5 (November 2000), 49--58. DOI:http://doi.acm.org/10.1145/378995.379000 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Thomas Gleixner and Ingo Molnar. 2006. Hrtimers - subsystem for high-resolution kernel timers. (Jan. 2006). Retrieved July 10, 2013 from https://www.kernel.org/doc/Documentation/timers/hrtimers.txt.Google ScholarGoogle Scholar
  11. Thomas Gleixner and Douglas Niehaus. 2006. Hrtimers and beyond: Transforming the Linux time subsystems. In Proceedings of the Linux Symposium. 333--346.Google ScholarGoogle Scholar
  12. Thomas Gleixner. 2007. High resolution timers and dynamic ticks design notes. Retrieved July 10, 2013 from https://www.kernel.org/doc/Documentation/timers/highres.txt.Google ScholarGoogle Scholar
  13. Intel. 2013. Intel 64 and IA-32 architectures software developer's manual. Order Number: 325462-048US. Intel Corporation.Google ScholarGoogle Scholar
  14. Anthony Gutierrez, Joseph Pusdesris, Ronald G. Dreslinski, Trevor Mudge, Chander Sudanthi, Christopher D. Emmons, Mitchell Hayenga, and Nigel Paver. 2014. Sources of error in full-system simulation. In Proceedings of the 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS’14). 23--25. DOI:10.1109/ISPASS.2014.6844457Google ScholarGoogle ScholarCross RefCross Ref
  15. Sitaram Iyer and Peter Druschel. 2001. Anticipatory scheduling: A disk scheduling framework to overcome deceptive idleness in synchronous I/O. SIGOPS Oper. Syst. Rev. 35, 5 (October 2001), 117--130. DOI:http://doi.acm.org/10.1145/502059.502046 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. John Linwood Griffin, Steven W. Schlosser, Gregory R. Ganger, and David F. Nagle. 2000. Modeling and performance of MEMS-based storage devices. SIGMETRICS Perform. Eval. Rev. 28, 1 (June 2000), 56--65. DOI:http://doi.acm.org/10.1145/345063.339354 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. John Linwood Griffin, Jiri Schindler, Steven W. Schlosser, John S. Bucy, and Gregory R. Ganger. 2002. Timing-accurate storage emulation. In Proceedings of the 1st USENIX Conference on File and Storage Technologies (FAST’02). USENIX Association, Berkeley, CA, 6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Diwaker Gupta, Kenneth Yocum, Marvin McNett, Alex C. Snoeren, Amin Vahdat, and Geoffrey M. Voelker. 2006. To infinity and beyond: time-warped network emulation. In Proceedings of the 3rd Conference on Networked Systems Design & Implementation - Volume 3 (NSDI’’06), Vol. 3. USENIX Association, Berkeley, CA, 7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Libav. 2014. Open source audio and video processing tools. Retrieved June 2014 from http://libav.org/.Google ScholarGoogle Scholar
  20. Linux Kernel. 2013a. Mainline Linux kernel source code. Retrieved from https://www.kernel.org/.Google ScholarGoogle Scholar
  21. Linux Kernel. 2013b. Linux kernel archive version 3.10. Retrieved from https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.10.tar.bz2.Google ScholarGoogle Scholar
  22. Linux Kernel. 2014. ftrace - Function Tracer. Retrieved from https://www.kernel.org/doc/Documentation/trace/ftrace.txt.Google ScholarGoogle Scholar
  23. Hyojun Kim, Nitin Agrawal, and Cristian Ungureanu. 2012. Revisiting storage for smartphones. Trans. Storage 8, 4 (December 2012), Article 14, 25 pages. DOI:http://doi.acm.org/10.1145/2385603.2385607 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Ying-Chieh Lee, Chin-Ting Kuo, and Li-Pin Chang. 2012. Design and implementation of a virtual platform of solid-state disks. IEEE Embed. Syst. Lett. 4, 4 (December 2012), 90--93. DOI:http://dx.doi.org/10.1109/LES.2012.2213795 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Linaro. 2014. Linaro 13.11 nano build. Retrieved from http://www.linaro.org/downloads/1311.Google ScholarGoogle Scholar
  26. Kaoutar El Maghraoui, Gokul Kandiraju, Joefon Jann, and Pratap Pattnaik. 2010. Modeling and simulating flash based solid-state disks for operating systems. In Proceedings of the first joint WOSP /SIPEW International Conference on Performance Engineering (WOSP/SIPEW’10). ACM, New York, NY, 15--26. DOI:http://doi.acm.org/10.1145/1712605.1712611 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Mendel Rosenblum, Stephen A. Herrod, Emmett Witchel, and Anoop Gupta. 1995. Complete computer system simulation: The SimOS approach. IEEE Parallel Distrib. Technol. 3, 4 (December 1995), 34--43. DOI:http://dx.doi.org/10.1109/88.473612 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Mendel Rosenblum, Edouard Bugnion, Scott Devine, and Stephen A. Herrod. 1997. Using the SimOS machine simulator to study complex computer systems. ACM Trans. Model. Comput. Simul. 7, 1 (January 1997), 78--103. DOI:http://doi.acm.org/10.1145/244804.244807 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. John Stultz, Nishanth Aravamudan, and Darren Hart. 2005. We are not getting any younger: A new approach to time and timers. In Proceedings of the Linux Symposium. 219--232.Google ScholarGoogle Scholar
  30. Chandramohan A. Thekkath, John Wilkes, and Edward D. Lazowska. 1994. Techniques for file system simulation. Softw. Pract. Exper. 24, 11 (November 1994), 981--999. DOI:http://dx.doi.org/10.1002/spe.4380241102 Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Avishay Traeger, Erez Zadok, Nikolai Joukov, and Charles P. Wright. 2008. A nine year study of file system and storage benchmarking. Trans. Storage 4, 2 (May 2008), Article 5, 56 pages. DOI:http://doi.acm.org/10.1145/1367829.1367831 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. S. Y. Wang, C. L. Chou, and C. C. Lin. 2007. The Design and Implementation of the NCTUns Network Simulation Engine. Simul. Model. Pract. Theory, 15 (2007), 57--81. DOI:http://dx.doi.org/10.1016/j.simpat.2006.09.013Google ScholarGoogle ScholarCross RefCross Ref
  33. Emmett Witchel and Mendel Rosenblum. 1996. Embra: Fast and flexible machine simulation. SIGMETRICS Perform. Eval. Rev. 24, 1 (May 1996), 68--79. DOI:http://doi.acm.org/10.1145/233008.233025 Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Charles P. Wright, Nikolai Joukov, Devaki Kulkarni, Yevgeniy Miretskiy, and Erez Zadok. 2005. Auto-pilot: A platform for system software benchmarking. In Proceedings of the Annual Conference on USENIX Annual Technical Conference (ATEC’05). USENIX Association, Berkeley, CA, 53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Charles P. Wright and Erez Zadok. 2007. The Auto-pilot Benchmarking Suite Version 2.4. Retrieved from http://www.filesystems.org/project-autopilot.html.Google ScholarGoogle Scholar
  36. Chin-Hsien Wu. 2010. A self-adjusting flash translation layer for resource-limited embedded systems. ACM Trans. Embed. Comput. Syst. 9, 4 (April 2010), Article 31, 26 pages. DOI:http://doi.acm.org/10.1145/1721695.1721697 Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Wikipedia. 2014a. Apple A7. Retrieved from http://en.wikipedia.org/wiki/Apple_A7.Google ScholarGoogle Scholar
  38. Wikipedia. 2014b. Noop scheduler. Retrieved from http://en.wikipedia.org/wiki/Noop_scheduler.Google ScholarGoogle Scholar
  39. Xilinx. 2013. Zynq-7000 All Programmable SoC Technical Reference Manual UG585 (v1.6.1). Xilinx.Google ScholarGoogle Scholar
  40. Xilinx. 2014. The official Linux kernel from Xilinx. Retrieved from https://github.com/xilinx.Google ScholarGoogle Scholar
  41. Jinsoo Yoo, Youjip Won, and Joongwoo Hwang. 2013. VSSIM: Virtual machine based SSD simulator. In Proceedings of the IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST’13).Google ScholarGoogle ScholarCross RefCross Ref
  42. ZedBoard. 2014. ZedBoard Documentations. Retrieved from http://www.zedboard.org/product/zedboard.Google ScholarGoogle Scholar
  43. Omer Zilberberg, Shlomo Weiss, and Sivan Toledo. 2013. Phase-change memory: An architectural perspective. ACM Comput. Surv. 45, 3 (July 2013), Article 29, 33 pages. DOI:http://doi.acm.org/10.1145/2480741.2480746 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A Storage Device Emulator for System Performance Evaluation

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Article Metrics

                  • Downloads (Last 12 months)3
                  • Downloads (Last 6 weeks)1

                  Other Metrics

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader
                About Cookies On This Site

                We use cookies to ensure that we give you the best experience on our website.

                Learn more

                Got it!