A Storage Device Emulator for System Performance Evaluation

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.

[1]  Sivan Toledo,et al.  Phase-change memory: An architectural perspective , 2013, CSUR.

[2]  Li-Pin Chang,et al.  A Hybrid Approach to NAND-Flash-Based Solid-State Disks , 2010, IEEE Transactions on Computers.

[3]  Yale N. Patt,et al.  Using System-Level Models to Evaluate I/O Subsystem Designs , 1998, IEEE Trans. Computers.

[4]  Gregory R. Ganger,et al.  Timing-Accurate Storage Emulation , 2002, FAST.

[5]  Amin Vahdat,et al.  To infinity and beyond: time warped network emulation , 2005, SOSP '05.

[6]  Nikolai Joukov,et al.  A nine year study of file system and storage benchmarking , 2008, TOS.

[7]  Edward D. Lazowska,et al.  Techniques for file system simulation , 1994, Softw. Pract. Exp..

[8]  Ronald G. Dreslinski,et al.  Sources of error in full-system simulation , 2014, 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[9]  Tei-Wei Kuo,et al.  An adaptive file-system-oriented FTL mechanism for flash-memory storage systems , 2012, TECS.

[10]  Gokul B. Kandiraju,et al.  Modeling and simulating flash based solid-state disks for operating systems , 2010, WOSP/SIPEW '10.

[11]  Chin-Ting Kuo,et al.  Design and Implementation of a Virtual Platform of Solid-State Disks , 2012, IEEE Embedded Systems Letters.

[12]  Nikolai Joukov,et al.  Auto-pilot: A Platform for System Software Benchmarking , 2005, USENIX Annual Technical Conference, FREENIX Track.

[13]  Scott Devine,et al.  Using the SimOS machine simulator to study complex computer systems , 1997, TOMC.

[14]  Andrea C. Arpaci-Dusseau,et al.  Emulating goliath storage systems with David , 2012, TOS.

[15]  Cristian Ungureanu,et al.  Revisiting storage for smartphones , 2012, TOS.

[16]  John H. Howard,et al.  A virtual machine emulator for performance evaluation , 1980, CACM.

[17]  Gregory R. Ganger,et al.  The DiskSim Simulation Environment Version 4.0 Reference Manual (CMU-PDL-08-101) , 1998 .

[18]  Jongmoo Choi,et al.  Exploiting non-volatile RAM to enhance flash file system performance , 2007, EMSOFT '07.

[19]  No License,et al.  Intel ® 64 and IA-32 Architectures Software Developer ’ s Manual Volume 3 A : System Programming Guide , Part 1 , 2006 .

[20]  S. Y. Wang,et al.  The design and implementation of the NCTUns network simulation engine , 2007, Simul. Model. Pract. Theory.

[21]  Mendel Rosenblum,et al.  Embra: fast and flexible machine simulation , 1996, SIGMETRICS '96.

[22]  Anoop Gupta,et al.  Complete computer system simulation: the SimOS approach , 1995, IEEE Parallel Distributed Technol. Syst. Appl..

[23]  D. Niehaus Hrtimers and Beyond : Transforming the Linux Time Subsystems , 2009 .

[24]  Peter Druschel,et al.  Anticipatory scheduling: a disk scheduling framework to overcome deceptive idleness in synchronous I/O , 2001, SOSP.

[25]  Chin-Hsien Wu,et al.  A self-adjusting flash translation layer for resource-limited embedded systems , 2010, TECS.

[26]  Gregory R. Ganger,et al.  Modeling and performance of MEMS-based storage devices , 2000, SIGMETRICS '00.

[27]  Jongmoo Choi,et al.  VSSIM: Virtual machine based SSD simulator , 2013, 2013 IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST).

[28]  David Eklov,et al.  Cache Pirating: Measuring the Curse of the Shared Cache , 2011, 2011 International Conference on Parallel Processing.