skip to main content
10.1145/3317550.3321430acmconferencesArticle/Chapter ViewAbstractPublication PageshotosConference Proceedingsconference-collections
research-article

Why and How to Increase SSD Performance Transparency

Published: 13 May 2019 Publication History

Abstract

Even on modern SSDs, I/O scheduling is a first-order performance concern. However, it is unclear how best to optimize I/O patterns for SSDs, because a complex layer of proprietary firmware hides many principal aspects of performance, as well as SSD lifetime. Losing this information leads to research papers drawing incorrect conclusions about prototype systems, as well as real-world systems realizing sub-optimal performance and lifetime. It is our position that a useful performance model of a foundational system component is essential, and the community should support efforts to construct models of SSD performance. We show examples from the literature and our own measurements that illustrate serious limitations of current SSD modeling tools and disk statistics. We observe an opportunity to resolve this problem by reverse engineering SSDs, leveraging recent trends toward component standardization within SSDs. This paper presents a feasibility study and initial results to reverse engineer a commercial SSD's firmware, and discusses limitations and open problems.

References

[1]
J. C. Browne, K. M. Chandy, R. M. Brown, T. W. Keller, D. F. Towsley, and C. W. Dissly. Hierarchical techniques for the development of realistic models of complex computer systems. Proceedings of the IEEE, 63(6):966--975, June 1975.
[2]
D. Pease, A. Amir, L. V. Real, B. Biskeborn, M. Richmond, and A. Abe. The linear tape file system. In 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST), pages 1--8, May 2010.
[3]
H. Robinson. A mass storage subsystem using ANSI X3B6 ID-1 recorders. In Tenth IEEE Symposium on Mass Storage Systems, volume 00 of MASS, pages 43--45, 1990.
[4]
Xianbo Zhang, David Du, Jim Hughes, and Ravi Kavuri. HPTFS: A high performance tape file system. In in Proceedings of 14th NASA Goddard/23rd IEEE conference on Mass Storage System and Technologies, MSST, 2006.
[5]
E. Coffman, L. Klimko, and B. Ryan. Analysis of scanning policies for reducing disk seek times. SIAM Journal on Computing, 1(3):269--279, 1972.
[6]
Micha Hofri. Disk scheduling: FCFS vs. SSTF revisited. Communications of ACM, 23(11):645--653, November 1980.
[7]
Margo Seltzer, Peter Chen, and John Ousterhout. Disk scheduling revisited. In Proceedings of the winter USENIX technical conference, 1990.
[8]
C. Ruemmler and J. Wilkes. An introduction to disk drive modeling. Computer, 27(3):17--28, March 1994.
[9]
The DiskSim simulation environment version 1.0 reference manual. https://cse.umich.edu/techreports/cse/98/CSE-TR-358-98.pdf, 1998.
[10]
H. Frank. Analysis and optimization of disk storage devices for time-sharing systems. J. ACM, 16(4):602--620, October 1969.
[11]
David Boutcher and Abhishek Chandra. Does virtualization make disk scheduling passé? SIGOPS Oper. Syst. Rev., 44(1):20--24, March 2010.
[12]
Jiacheng Zhang, Jiwu Shu, and Youyou Lu. ParaFS: A log-structured file system to exploit the internal parallelism of flash devices. In Proceedings of the 2016 USENIX Conference on Usenix Annual Technical Conference, USENIX ATC, 2016.
[13]
B. Mao and S. Wu. Exploiting request characteristics and internal parallelism to improve ssd performance. In 33rd IEEE International Conference on Computer Design, ICCD, 2015.
[14]
J. Kim, P. Park, J. Ahn, J. Kim, J. Kim, and J. Kim. Ssdcheck: Timely and accurate prediction of irregular behaviors in black-box SSDs. In 51st Annual IEEE/ACM International Symposium on Microarchitecture, MICRO, 2018.
[15]
J. Kim, E. Lee, and S. H. Noh. I/o scheduling schemes for better i/o proportionality on flash-based SSDs. In IEEE 24th International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems, MASCOTS, 2016.
[16]
Myoungsoo Jung and Mahmut Kandemir. Revisiting widely held ssd expectations and rethinking system-level implications. In Proceedings of the ACM SIGMETRICS/International Conference on Measurement and Modeling of Computer Systems, SIGMETRICS, 2013.
[17]
Sungjoon Koh, Changrim Lee, Miryeong Kwon, and Myoungsoo Jung. Exploring system challenges of ultra-low latency solid state drives. In 10th USENIX Workshop on Hot Topics in Storage and File Systems, HotStorage, 2018.
[18]
Alex Conway, Ainesh Bakshi, Yizheng Jiao, William Jannen, Yang Zhan, Jun Yuan, Michael A. Bender, Rob Johnson, Bradley C. Kuszmaul, Donald E. Porter, and Martin Farach-Colton. File systems fated for senescence? nonsense, says science! In 15th USENIX Conference on File and Storage Technologies, FAST, 2017.
[19]
Yang Hu, Hong Jiang, Dan Feng, Lei Tian, Hao Luo, and Shuping Zhang. Performance impact and interplay of ssd parallelism through advanced commands, allocation strategy and data granularity. In Proceedings of the International Conference on Supercomputing, ICS, 2011.
[20]
C. Gao, L. Shi, M. Zhao, C. J. Xue, K. Wu, and E. H. Sha. Exploiting parallelism in I/O scheduling for access conflict minimization in flash-based solid state drives. In 30th Symposium on Mass Storage Systems and Technologies, MSST, pages 1--11, June 2014.
[21]
Feng Chen, David A. Koufaty, and Xiaodong Zhang. Understanding intrinsic characteristics and system implications of flash memory based solid state drives. SIGMETRICS Performance Evaluation Review, 37(1):181--192, June 2009.
[22]
Peter Desnoyers. Analytic modeling of ssd write performance. In Proceedings of the 5th Annual International Systems and Storage Conference, SYSTOR, pages 12:1--12:10, New York, NY, USA, 2012. ACM.
[23]
Li-Pin Chang, Tei-Wei Kuo, and Shi-Wu Lo. Real-time garbage collection for flash-memory storage systems of real-time embedded systems. ACM Trans. Embed. Comput. Syst., 3(4):837--863, November 2004.
[24]
H. Cho, and Y. I. Eom. Kast: K-associative sector translation for nand flash memory in real-time systems. In 2009 Design, Automation Test in Europe Conference Exhibition, pages 507--512, April 2009.
[25]
Saurabh Kadekodi, Vaishnavh Nagarajan, and Gregory R. Ganger. Geriatrix: Aging what you see and what you don't see. a file system aging approach for modern storage systems. In 2018 USENIX Annual Technical Conference, USENIX ATC, 2018.
[26]
Mingzhe Hao, Gokul Soundararajan, Deepak Kenchammana-Hosekote, Andrew A. Chien, and Haryadi S. Gunawi. The tail at store: A revelation from millions of hours of disk and SSD deployments. In 14th USENIX Conference on File and Storage Technologies, FAST, 2016.
[27]
Haryadi S. Gunawi, Riza O. Suminto, Russell Sears, Casey Golliher, Swaminathan Sundararaman, Xing Lin, Tim Emami, Weiguang Sheng, Nematollah Bidokhti, Caitie McCaffrey, Gary Grider, Parks M. Fields, Kevin Harms, Robert B. Ross, Andree Jacobson, Robert Ricci, Kirk Webb, Peter Alvaro, H. Birali Runesha, Mingzhe Hao, and Huaicheng Li. Fail-slow at scale: Evidence of hardware performance faults in large production systems. In 16th USENIX Conference on File and Storage Technologies, FAST, 2018.
[28]
Jun He, Sudarsun Kannan, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. The unwritten contract of solid state drives. In Proceedings of the Twelfth European Conference on Computer Systems, EuroSys, 2017.
[29]
Iyswarya Narayanan, Di Wang, Myeongjae Jeon, Bikash Sharma, Laura Caulfield, Anand Sivasubramaniam, Ben Cutler, Jie Liu, Badriddine Khessib, and Kushagra Vaid. SSD failures in datacenters: What, when and why? SIGMETRICS Performance Evaluation, 44(1), June 2016.
[30]
Bianca Schroeder, Raghav Lagisetty, and Arif Merchant. Flash reliability in production: The expected and the unexpected. In 14th USENIX Conference on File and Storage Technologies, FAST. USENIX Association, 2016.
[31]
MarÃa F. Borge, Florin Dinu, and Willy Zwaenepoel. Understanding and taming SSD read performance variability: HDFS case study, 2019.
[32]
Matias Bjørling, Javier Gonzalez, and Philippe Bonnet. Lightnvm: The linux open-channel ssd subsystem. In Proceedings of the 15th Usenix Conference on File and Storage Technologies, FAST, 2017.
[33]
Jian Ouyang, Shiding Lin, Song Jiang, Zhenyu Hou, Yong Wang, and Yuanzheng Wang. Sdf: Software-defined flash for web-scale internet storage systems. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS, 2014.
[34]
Open NAND flash interface. http://www.onfi.org.
[35]
Lucian Cojocar, Kaveh Razavi, and Herbert Bos. Off-the-shelf embedded devices as platforms for security research. In Proceedings of the 10th European Workshop on Systems Security, EuroSec, 2017.
[36]
Carlo Meijer and Bernard Van Gastel. Self-encrypting deception: weaknesses in the encryption of solid state drives (SSDs). https://www.ru.nl/publish/pages/909282/draft-paper.pdf, 2018.
[37]
A. Birrell, M. Isard, C. Thacker, and T. Wobber. A design for high-performance flash disks. ACM SIGOPS Operating Systems Review, 41(2):88--93, 2007.
[38]
Xiao-Yu Hu, Evangelos Eleftheriou, Robert Haas, Ilias Iliadis, and Roman Pletka. Write amplification analysis in flash-based solid state drives. In Proceedings of The Israeli Experimental Systems Conference, SYSTOR, pages 10:1--10:9, New York, NY, USA, 2009. ACM.
[39]
Radu Stoica and Anastasia Ailamaki. Improving flash write performance by using update frequency. Proceedings of the VLDB Endowment, 6(9):733--744, July 2013.
[40]
Michael Wu and Willy Zwaenepoel. envy: A non-volatile, main memory storage system. SIGPLAN Not., 29(11):86--97, November 1994.
[41]
Dongchul Park and D.H.C. Du. Hot data identification for flash-based storage systems using multiple bloom filters. In IEEE 27th Symposium on Mass Storage Systems and Technologies, MSST, 2011.
[42]
B. Van Houdt. On the necessity of hot and cold data identification to reduce the write amplification in flash-based SSDs. Performance Evaluation, 82(0):1--14, 2014.
[43]
Shiqin Yan, Huaicheng Li, Mingzhe Hao, Michael Hao Tong, Swaminathan Sundararaman, Andrew A. Chien, and Haryadi S. Gunawi. Tiny-tail flash: Near-perfect elimination of garbage collection tail latencies in NAND ssds. In 15th USENIX Conference on File and Storage Technologies, FAST, 2017.
[44]
Peter Desnoyers. What systems researchers need to know about nand flash. In Proceedings of the 5th USENIX Conference on Hot Topics in Storage and File Systems, HotStorage, 2013.
[45]
Laura M. Grupp, John D. Davis, and Steven Swanson. The bleak future of NAND flash memory. In Proceedings of the 10th USENIX Conference on File and Storage Technologies, FAST. USENIX Association, 2012.
[46]
Y. Cai, S. Ghose, E. F. Haratsch, Y. Luo, and O. Mutlu. Error characterization, mitigation, and recovery in flash-memory-based solid-state drives. Proceedings of the IEEE, 105(9):1666--1704, Sept 2017.
[47]
Peng Wang, Guangyu Sun, Song Jiang, Jian Ouyang, Shiding Lin, Chen Zhang, and Jason Cong. An efficient design and implementation of lsm-tree based key-value store on open-channel ssd. In Proceedings of the Ninth European Conference on Computer Systems, EuroSys '14, pages 16:1--16:14, New York, NY, USA, 2014. ACM.
[48]
Changman Lee, Dongho Sim, Jooyoung Hwang, and Sangyeun Cho. F2fs: A new file system for flash storage. In 13th USENIX Conference on File and Storage Technologies, FAST, pages 273--286. USENIX Association, February 2015.
[49]
Aviad Zuck, Sivan Toledo, Dmitry Sotnikov, and Danny Harnik. Compression and SSDs: Where and how? In 2nd Workshop on Interactions of NVM/Flash with Operating Systems and Workloads, INFLOW, 2014.
[50]
Intel. How data compression affects performance for Intel® solid state drives. https://www.intel.com/content/www/us/en/support/articles/000006354/memory-and-storage.html.
[51]
Kingston. Kingston data reduction technology for longer SSD life and greater performance. https://www.kingston.com/en/ssd/enterprise/technical_brief/what_is_durawrite/.
[52]
Xuebin Zhang, Jiangpeng Li, Hao Wang, Kai Zhao, and Tong Zhang. Reducing solid-state storage device write stress through opportunistic in-place delta compression. In Proceedings of the 14th Usenix Conference on File and Storage Technologies, FAST, 2016.
[53]
J. Lee, Y. Kim, G. M. Shipman, S. Oral, and J. Kim. Preemptible i/o scheduling of garbage collection for solid state drives. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 32(2):247--260, 2013.
[54]
Y. Cai, G. Yalcin, O. Mutlu, E. F. Haratsch, A. Cristal, O. S. Unsal, and K. Mai. Flash correct-and-refresh: Retention-aware error management for increased flash memory lifetime. In IEEE 30th International Conference on Computer Design, ICCD, pages 94--101, Sept 2012.
[55]
Chengen Yang, Hsing-Min Chen, Trevor Mudge, and Chaitali Chakrabarti. Improving the reliability of MLC NAND flash memories through adaptive data refresh and error control coding. Journal of Signal Processing Systems, 76(3):225--234, 2014.
[56]
Qi Wu, Guiqiang Dong, and Tong Zhang. Exploiting heat-accelerated flash memory wear-out recovery to enable self-healing SSDs. In Proceedings of the 3rd USENIX Conference on Hot Topics in Storage and File Systems, HotStorage, 2011.
[57]
R. Chen, Y. Wang, D. Liu, Z. Shao, and S. Jiang. Heating dispersal for self-healing NAND flash memory. IEEE Transactions on Computers, 66(2):361--367, Feb 2017.
[58]
Arash Tavakkol, Juan Gómez-Luna, Mohammad Sadrosadati, Saugata Ghose, and Onur Mutlu. MQSim: A framework for enabling realistic studies of modern multi-queue SSD devices. In 16th USENIX Conference on File and Storage Technologies, FAST, 2018.
[59]
Huaicheng Li, Mingzhe Hao, Michael Hao Tong, Swaminathan Sundararaman, Matias Bjørling, and Haryadi S. Gunawi. The CASE of FEMU: Cheap, accurate, scalable and extensible flash emulator. In 16th USENIX Conference on File and Storage Technologies, FAST, pages 83--90, 2018.
[60]
J. Yoo, Y. Won, J. Hwang, S. Kang, J. Choil, S. Yoon, and J. Cha. Vssim: Virtual machine based SSD simulator. In IEEE 29th Symposium on Mass Storage Systems and Technologies, MSST, pages 1--14, May 2013.
[61]
M. Jung, J. Zhang, A. Abulila, M. Kwon, N. Shahidi, J. Shalf, N. S. Kim, and M. Kandemir. SimpleSSD: Modeling solid state drives for holistic system simulation. IEEE Computer Architecture Letters, 17(1): 37-41, Jan 2018.
[62]
Benny Van Houdt. A mean field model for a class of garbage collection algorithms in flash-based solid state drives. In Proceedings of the ACM SIGMETRICS/International Conference on Measurement and Modeling of Computer Systems, SIGMETRICS, 2013.
[63]
Arash Tavakkol, Pooyan Mehrvarzy, Mohammad Arjomand, and Hamid Sarbazi-Azad. Performance evaluation of dynamic page allocation strategies in ssds. ACM TOPMECS, 1(2):7:1--7:33, June 2016.
[64]
Christian Franke, Philip Williams, and Bruce Allen. smartmontools drive database file). https://github.com/smartmontools/smartmontools/blob/master/smartmontools/drivedb.h, 2018.
[65]
fio benchmarking tool. https://github.com/axboe/fio.
[66]
New Group Simplifies NAND Flash Integration. http://www.onfi.org/news-events/new-group-simplifies-nand-flash-integration/, May 2006.
[67]
Newegg. Ocz vertex 2 2.5" 55gb sata ii mlc internal solid state drive (ssd) oczssd2-2vtxe60g. https://www.newegg.com/Product/Product.aspx?Item=N82E16820227550.
[68]
Tektronix. Tla7000 logic analyzer. https://www.tek.com/logic-analyzer/tla7000.
[69]
Intel. JTAG 101 IEEE 1149.x and software debug. https://digitallibrary.intel.com/content/dam/ccl/public/jtag-101-ieee-1149x-paper.pdf, 2009.
[70]
Samsung. 840 EVO SATA III. https://www.samsung.com/us/support/owners/product/840-evo-sata-iii.
[71]
Samsung EVO 840 JTAG pinouts. https://twitter.com/bsmtiam/status/623241828033114112.
[72]
Novena open hardware computing platform. https://www.kosagi.com/w/index.php?title=Novena_Main_Page.
[73]
Linux Kernel Archives. Pinctrl (pin control) subsystem. https://www.kernel.org/doc/Documentation/pinctrl.txt.
[74]
Daming Dominic Chen. Samsung ssd firmware deobfuscation utility. github, https://github.com/ddcc/drive_firmware/tree/master/samsung.
[75]
Open on-chip debugger. http://openocd.org.
[76]
Seokhei Cho, Changhyun Park, Youjip Won, Sooyong Kang, Jaehyuk Cha, Sungroh Yoon, and Jongmoo Choi. Design tradeoffs of SSDs: From energy consumption's perspective. Transactions on Storage, 11(2):8:1--8:24, 2015.
[77]
Gabriele Bonetti, Marco Viglione, Alessandro Frossi, Federico Maggi, and Stefano Zanero. A comprehensive black-box methodology for testing the forensic characteristics of solid-state drives. In Proceedings of the 29th Annual Computer Security Applications Conference, ACSAC, 2013.
[78]
Mingzhe Hao, Gokul Soundararajan, Deepak Kenchammana-Hosekote, Andrew A. Chien, and Haryadi S. Gunawi. The tail at store: A revelation from millions of hours of disk and SSD deployments. In 14th USENIX Conference on File and Storage Technologies, FAST, 2016.
[79]
Abutalib Aghayev and Peter Desnoyers. Skylight---a window on shingled disk operation. In 13th USENIX Conference on File and Storage Technologies, FAST, 2015.
[80]
Simona Boboila and Peter Desnoyers. Write endurance in flash drives: Measurements and analysis. In Proceedings of the 8th USENIX Conference on File and Storage Technologies, FAST, 2010.
[81]
J Domburg. Hard disk hacking. http://spritesmods.com/?art=hddhack, 2013.
[82]
Eyal Ronen, Adi Shamir, Achi-Or Weingarten, and Colin OFlynn. Iot goes nuclear: Creating a zigbee chain reaction. In IEEE Symposium on Security and Privacy, SP, 2017.
[83]
Hossein Fereidooni, Jiska Classen, Tom Spink, Paul Patras, Markus Miettinen, Ahmad-Reza Sadeghi, Matthias Hollick, and Mauro Conti. Breaking fitness records without moving: Reverse engineering and spoofing fitbit. In Marc Dacier, Michael Bailey, Michalis Polychronakis, and Manos Antonakakis, editors, Research in Attacks, Intrusions, and Defenses, pages 48--69, Cham, 2017. Springer International Publishing.
[84]
Ang Cui, Michael Costello, and Salvatore J. Stolfo. When firmware modifications attack: A case study of embedded exploitation. NDSS, 2013.
[85]
Andrei Costin, Jonas Zaddach, Aurélien Francillon, and Davide Balzarotti. A large-scale analysis of the security of embedded firmwares. In 23rd USENIX Security Symposium, USENIX Security, 2014.
[86]
Andrei Costin and Jonas Zaddach. Embedded devices security and firmware reverse engineering. BlackHat USA http://s3.eurecom.fr/docs/bh13us_zaddach.pdf, 2013.
[87]
Supreme court rebuffs lexmark in toner cartridge fight. Computer World, https://www.computerworld.com/article/2555558/supreme-court-rebuffs-lexmark-in-toner-cartridge-fight.html, 2005.
[88]
Samba: An introduction. Samba.org, https://www.samba.org/samba/docs/SambaIntro.html, 2001.
[89]
Dvd copy control ass'n, inc. v. bunner. Wikipedia, https://en.wikipedia.org/wiki/DVD_Copy_Control_Ass%27n,_Inc._v._Bunner.
[90]
Software, reverse engineering and the law. lwn.net, https://lwn.net/Articles/134642/, 2005.
[91]
Department of Health, Education, and Welfare and National Commission for the Protection of Human Subjects of Biomedical and Behavioral Research. The belmont report. ethical principles and guidelines for the protection of human subjects of research. The Journal of the American College of Dentists, 81(3):4--13, 2014.
[92]
M. Bailey, D. Dittrich, E. Kenneally, and D. Maughan. The menlo report. IEEE Security Privacy, 10(2):71--75, March 2012.

Cited By

View all
  • (2023)Extending and Programming the NVMe I/O Determinism Interface for Flash ArraysACM Transactions on Storage10.1145/356842719:1(1-33)Online publication date: 11-Jan-2023
  • (2022)Fantastic SSD internals and how to learn and use themProceedings of the 15th ACM International Conference on Systems and Storage10.1145/3534056.3534940(72-84)Online publication date: 6-Jun-2022
  • (2022)IOCost: block IO control for containers in datacentersProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507727(595-608)Online publication date: 28-Feb-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
HotOS '19: Proceedings of the Workshop on Hot Topics in Operating Systems
May 2019
227 pages
ISBN:9781450367271
DOI:10.1145/3317550
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 13 May 2019

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

Conference

HotOS '19
Sponsor:

Upcoming Conference

HOTOS '25
Workshop on Hot Topics in Operating Systems
May 14 - 16, 2025
Banff , AB , Canada

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)23
  • Downloads (Last 6 weeks)2
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Extending and Programming the NVMe I/O Determinism Interface for Flash ArraysACM Transactions on Storage10.1145/356842719:1(1-33)Online publication date: 11-Jan-2023
  • (2022)Fantastic SSD internals and how to learn and use themProceedings of the 15th ACM International Conference on Systems and Storage10.1145/3534056.3534940(72-84)Online publication date: 6-Jun-2022
  • (2022)IOCost: block IO control for containers in datacentersProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507727(595-608)Online publication date: 28-Feb-2022
  • (2021)Rowhammering Storage DevicesProceedings of the 13th ACM Workshop on Hot Topics in Storage and File Systems10.1145/3465332.3470871(77-85)Online publication date: 27-Jul-2021
  • (2021)Don't be a blockheadProceedings of the Workshop on Hot Topics in Operating Systems10.1145/3458336.3465300(144-151)Online publication date: 1-Jun-2021

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media