Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1109/ISCA.2018.00046acmconferencesArticle/Chapter ViewAbstractPublication PagesiscaConference Proceedingsconference-collections
research-article

Hardware supported permission checks on persistent objects for performance and programmability

Published: 02 June 2018 Publication History

Abstract

Non-Volatile Memory technologies are advancing rapidly and may augment or replace DRAM in future systems. However, a key question is how programmers will use them to construct and manipulate persistent data. One possible approach gives programmers direct access to persistent memory using relocatable persistent pools that hold persistent objects which can be accessed using persistent pointers, called ObjectIDs. Prior work has shown that hardware-supported address translation for ObjectIDs provides significant performance improvement and simplifies programming, however these works did not consider the large overheads incurred to check permissions before accessing persistent objects.
In this paper, we identify permission checking in hardware as a critical mechanism that must be included when translating ObjectIDs to addresses in order to simplify programming and fully benefit from hardware translation. To support it, we add a System Persistent Object Table (SPOT) to support translation and permissions checks on ObjectIDs. The SPOT holds all known pools, their physical address, and their permissions information in memory. When a program attempts to access a persistent object, the SPOT is consulted and permissions are verified without trapping to the operating system. We have implemented our new design in a cycle accurate simulator and compared it with software only approaches and prior work. We find that our design offers a compelling 2.9x speedup on average for microbenchmarks that access pools with the RANDOM pattern and 1.4x and 1.8x speedup on TPC-C and vacation, respectively, for the SEPARATE pattern.

References

[1]
Intel and Micron, "Intel and micron produce breakthrough memory technology," Jul. 2015.
[2]
R. Rajachandrasekar, S. Potluri, A. Venkatesh, K. Hamidouche, M. W. ur Rahman, and D. K. D. Panda, "Mic-check: A distributed check pointing framework for the intel many integrated cores architecture," in International symposium on High-performance parallel and distributed computing, Jun. 2014.
[3]
B. C. Lee, "Phase change technology and the future of main memory," in IEEE Micro, Vol. 30, Issue: 1, Jan. - Feb. 2010.
[4]
T. Kawahara, R. Takemura, K. Miura, J. Hayakawa, S. Ikeda, Y. Lee, R. Sasaki, Y. Goto, K. Ito, T. Meguro, F. Matsukura, H. Takahashi, H. Matsuoka, and H. Ohno, "2mb spin-transfer torque ram (spram) with bit-by-bit bidirectional current write and parallelizing-direction current read," in IEEE International Solid-State Circuits Conference. Digest of Technical Papers, Feb. 2007.
[5]
E. Kultursay, M. Kandemir, A. Sivasubramaniam, and O. Mutlu, "Evaluating stt-ram as an energy-efficient main memory alternative," in IEEE International Symposium on Performance Analysis of Systems and Software, Apr. 2013.
[6]
H. Akinaga and H. Shima, "Resistive random access memory (reram) based on metal oxides," in IEEE, Vol. 98, Issue: 12, Oct. 2010.
[7]
C. Wang, Q. Wei, J. Yang, C. Chen, and M. Xue, "How to Be Consistent with Persistent Memory? An Evaluation Approach," in IEEE International Conference on Networking, Architecture and Storage (NAS'15), August 2015.
[8]
I. Moraru, D. G. Andersen, M. Kaminsky, N. Tolia, P. Ranganathan, and N. Binkert, "Consistent, durable, and safe memory management for byte-addressable non volatile main memory," in Proceedings of the First ACM SIGOPS Conference on Timely Results in Operating Systems (TRIOS'13), November 2013.
[9]
M. H. Kryder and C. S. Kim, "After Hard DrivesWhat Comes Next?" September 2009, pp. 3406--3413.
[10]
J. Zhao, S. Li, D. H. Yoon, Y. Xie, and N. P. Jouppi, "Kiln: Closing the performance gap between systems with and without persistence support," in Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture, 2013.
[11]
J. Coburn, A. M. Caulfield, A. Akel, L. M. Grupp, R. K. Gupta, R. Jhala, and S. Swanson, "Nv-heaps: making persistent objects fast and safe with next-generation, non-volatile memories," in International conference on Architectural support for programming languages and operating systems, Mar. 2011.
[12]
H. Volos, A. J. Tack, and M. M. Swift, "Mnemosyne: Lightweight persistent memory," in Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems, ser. ASPLOS XVI, 2011.
[13]
G. Chen, L. Zhang, R. Budhiraja, X. Shen, and Y. Wu, "Efficient support of position independence on non-volatile memory," in Proceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture. ACM, 2017.
[14]
S. Pelley, P. M. Chen, and T. F. Wenisch, "Memory persistency," in International symposium on Computer architecuture, Jun. 2014.
[15]
T. Wang, S. Sambasivam, Y. Solihin, and J. Tuck, "Hardware supported persistent object address translation," in Proceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture. ACM, 2017.
[16]
S. Shin, S. K. Tirukkovalluri, J. Tuck, and Y. Solihin, "Proteus: A flexible and fast software supported hardware logging approach for nvm," in Proceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture, ser. MICRO-50 '17, 2017.
[17]
N. L. T. at Intel, "Persistent memory programming," August 2016, http://pmem.io.
[18]
V. J. Marathe, M. Seltzer, S. Byan, and T. Harris, "Persistent memcached: Bringing legacy code to byte-addressable persistent memory," in 9th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage 17), 2017.
[19]
A. Joshi, V. Nagarajan, M. Cintra, and S. Viglas, "Efficient persist barriers for multicores," in International Symposium on Microarchitecture, Dec. 2015.
[20]
S. Nalli, S. Haria, M. D. Hill, M. M. Swift, H. Volos, and K. Keeton, "An analysis of persistent memory use with whisper," in Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems, ser. ASPLOS '17, 2017.
[21]
Intel 64 and IA-32 Architectures Software Developers Manual, Volume 3A: System Programming Guide, Part 1, Intel.
[22]
A. Roth, "Store vulnerability window (svw): Re-execution filtering for enhanced load optimization," in Proceedings of the 32Nd Annual International Symposium on Computer Architecture, ser. ISCA '05, 2005.
[23]
A. Gandhi, H. Akkary, R. Rajwar, S. T. Srinivasan, and K. Lai, "Scalable load and store processing in latency tolerant processors," in International symposium on Computer architecture, Jun. 2005.
[24]
M. M. P. Leach and R. Salz, "A universally unique identifier (uuid) urn namespace," July 2005, https://tools.ietf.org/html/rfc4122.
[25]
T. E. Carlson, W. Heirman, S. Eyerman, I. Hur, and L. Eeckhout, "An evaluation of high-level mechanistic core models," ACM Transactions on Architecture and Code Optimization (TACO), 2014.
[26]
J. E. Miller, H. Kasture, G. Kurian, C. Gruenwald, N. Beckmann, C. Celio, J. Eastep, and A. Agarwal, "Graphite: A distributed parallel simulator for multicores," in High Performance Computer Architecture (HPCA), 2010 IEEE 16th International Symposium on. IEEE, 2010, pp. 1--12.
[27]
"Tpc benchmark c," Transaction Processing Performance Council (TPC), February 2010. {Online}. Available: http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-c_v5.11.0.pdf
[28]
C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun, "Stamp: Stanford transactional applications for multi-processing," in Workload Characterization, 2008. IISWC 2008. IEEE International Symposium on. IEEE, 2008, pp. 35--46.
[29]
Y. Lu, J. Shu, L. Sun, and O. Mutlu, "Loose-Ordering Consistency for persistent memory," in Computer Design, 2014 32nd IEEE International Conference on (ICCD'14), October 2014.
[30]
J. Woodruff, R. N. Watson, D. Chisnall, S. W. Moore, J. Anderson, B. Davis, B. Laurie, P. G. Neumann, R. Norton, and M. Roe, "The cheri capability model: Revisiting risc in an age of risk," in Proceeding of the 41st Annual International Symposium on Computer Architecuture, ser. ISCA '14, 2014.
[31]
H. M. Levy, Capability-Based Computer Systems. Newton, MA, USA: Butterworth-Heinemann, 1984.
[32]
J. Condit, E. B. Nightingale, C. Frost, E. Ipek, B. Lee, D. Burger, and D. Coetzee, "Better i/o through byte-addressable, persistent memory," in ACM Symposium on Operating Systems Principles, Oct. 2009.
[33]
S. R. Dulloor, S. Kumar, A. Keshavamurthy, P. Lantz, D. Reddy, R. Sankaran, and J. Jackson, "System software for persistent memory," in Proceedings of the Ninth European Conference on Computer Systems, ser. EuroSys '14, 2014.
[34]
X. Wu and A. Reddy, "Scmfs: a file system for storage class memory," in Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis. ACM, 2011, p. 39.
[35]
H. Volos, S. Nalli, S. Panneerselvam, V. Varadarajan, P. Saxena, and M. M. Swift, "Aerie: Flexible file-system interfaces to storage-class memory," in Proceedings of the Ninth European Conference on Computer Systems. ACM, 2014, p. 14.
[36]
J. Xu and S. Swanson, "Nova: A log-structured file system for hybrid volatile/non-volatile main memories." in FAST, 2016, pp. 323--338.
[37]
J. Xu, L. Zhang, A. Memaripour, A. Gangadharaiah, A. Borase, T. B. Da Silva, S. Swanson, and A. Rudoff, "Nova-fortis: A fault-tolerant non-volatile main memory file system," in Proceedings of the 26th Symposium on Operating Systems Principles, ser. SOSP '17, 2017.
[38]
J. Zhou, Y. Shen, S. Li, and L. Huang, "Nvht: An efficient key-value storage library for non-volatile memory," in 2016 IEEE/ACM 3rd International Conference on Big Data Computing Applications and Technologies (BDCAT), 2016.
[39]
A. Rudoff, "Programming models for emerging non-volatile memory technologies," ;login:, vol. 38, no. 3, June 2013.
[40]
N. Zeldovich, H. Kannan, M. Dalton, and C. Kozyrakis, "Hardware enforcement of application security policies using tagged memory," in Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation, ser. OSDI'08, 2008.
[41]
A. Jaleel and B. Jacob, "In-line interrupt handling and lock-up free translation lookaside buffers (tlbs)," IEEE Transactions on Computers, 2006.
[42]
I. Yaniv and D. Tsafrir, "Hash, don't cache (the page table)," in Proceedings of the 2016 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Science, ser. SIGMETRICS '16, 2016.

Cited By

View all
  • (2021)Supporting legacy libraries on non-volatile memoryProceedings of the 48th Annual International Symposium on Computer Architecture10.1109/ISCA52012.2021.00042(443-455)Online publication date: 14-Jun-2021
  • (2020)MERRProceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3373376.3378492(987-1000)Online publication date: 9-Mar-2020
  • (2019)Transitioning scientific applications to using non-volatile memory for resilienceProceedings of the International Symposium on Memory Systems10.1145/3357526.3357563(114-125)Online publication date: 30-Sep-2019

Index Terms

  1. Hardware supported permission checks on persistent objects for performance and programmability
        Index terms have been assigned to the content through auto-classification.

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        ISCA '18: Proceedings of the 45th Annual International Symposium on Computer Architecture
        June 2018
        884 pages
        ISBN:9781538659847

        Publisher

        IEEE Press

        Publication History

        Published: 02 June 2018

        Check for updates

        Author Tags

        1. non-volatile memory
        2. persistent data permission check
        3. persistent memory programming

        Qualifiers

        • Research-article

        Conference

        ISCA '18

        Acceptance Rates

        Overall Acceptance Rate 543 of 3,203 submissions, 17%

        Upcoming Conference

        ISCA '25

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)5
        • Downloads (Last 6 weeks)0
        Reflects downloads up to 12 Nov 2024

        Other Metrics

        Citations

        Cited By

        View all
        • (2021)Supporting legacy libraries on non-volatile memoryProceedings of the 48th Annual International Symposium on Computer Architecture10.1109/ISCA52012.2021.00042(443-455)Online publication date: 14-Jun-2021
        • (2020)MERRProceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3373376.3378492(987-1000)Online publication date: 9-Mar-2020
        • (2019)Transitioning scientific applications to using non-volatile memory for resilienceProceedings of the International Symposium on Memory Systems10.1145/3357526.3357563(114-125)Online publication date: 30-Sep-2019

        View Options

        Get Access

        Login options

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media