{"id":6360,"date":"2023-11-01T16:10:00","date_gmt":"2023-11-01T15:10:00","guid":{"rendered":"https:\/\/i4wpdev.cs.fau.de\/?page_id=6360"},"modified":"2023-11-02T13:54:57","modified_gmt":"2023-11-02T12:54:57","slug":"nvux-oid","status":"publish","type":"page","link":"https:\/\/i4wpdev.cs.fau.de\/en\/research\/nvux-oid","title":{"rendered":"NVRAM-ified Unixoid"},"content":{"rendered":"<h4>Non-volatile main memory (NVM)<\/h4>\r\n<p>\r\nThe trend toward fast, <strong>byte-addressable non-volatile memory<\/strong> (i.e. NVM in the form of NVRAM) with latencies and write resistance closer to SRAM and DRAM than flash positions this new type of main memory as a possible replacement for established volatile technologies. While on the one hand the non-volatility and low leakage capacity make NVRAM an attractive candidate for new system designs in addition to other advantageous features, on the other hand there are also major challenges, especially for the programming of such systems. For example, power failures in combination with NVRAM to protect the computing status result in control flows that can unexpectedly transform a sequential process into a non-sequential process (cf. <a href=\"https:\/\/i4wpdev.cs.fau.de\/en\/research\/redos-note\">REDOS<\/a>): a program has to deal with its own status from earlier interrupted runs. If programs can be executed directly in the NVRAM, normal volatile main memory (functional) becomes superfluous. Volatile memory can then only be found in the cache and in device\/processor registers. An operating system designed for this can dispense with many, if not all, persistence measures that would normally otherwise be implemented and thereby reduce its level of background noise. Considered in detail, this enables energy requirements to be reduced, computing power to be increased and latencies to be reduced. In addition, the elimination of these persistence measures means that an <strong>&#8220;NVM-only&#8221; operating system<\/strong> is leaner than its functionally identical twin of conventional design. On the one hand, this contributes to better analysability of non-functional properties of the operating system and, on the other hand, results in a smaller attack surface or trustworthy computing base.\r\n<\/p>\r\n\r\n<h4>NVRAM-ification of Linux and FreeBSD<\/h4>\r\n<p>\r\nThe <a href=\"https:\/\/i4wpdev.cs.fau.de\/en\/research\/neon\">NEON<\/a> and <a href=\"https:\/\/i4wpdev.cs.fau.de\/en\/research\/PAVE\">PAVE<\/a> projects assume an &#8220;NVM-only&#8221; Unix-like universal operating system, namely Linux on the one hand and FreeBSD on the other. Both operating systems are based on functionally identical x86-64 hardware, especially Optane&trade; technology as NVRAM. They have both been NVRAM-ified so that they themselves, as well as the machine programs they run, execute directly in NVRAM. Basically, only the main memory technology was exchanged for them, that is, DRAM for NVRAM.\r\n<p \/>\r\n\r\n<p>\r\n<!--\r\nThe concept for \"NVM-only\" operating systems was presented at <a href=\"https:\/\/www.dagstuhl.de\/en\/seminars\/seminar-calendar\/seminar-details\/22341\">Dagstuhl Seminar 22341<\/a> prior to the work, implementation in practice as well as an evaluation are documented in a <a href=\"https:\/\/doi.org\/10.25593\/issn.2191-5008\/CS-2023-01\">Technical Report<\/a> and a contribution to <a href=\"http:\/\/dx.doi.org\/10.1007\/978-3-031-42785-5_11\">ARCS 2023<\/a>.\r\n-->\r\nIn practice, replacing the main memory base (DRAM with NVRAM) has proven to be unexpectedly difficult and time-consuming for both operating systems, but the problems were much more in the BIOS. The bootstrap process proved tricky, as it can only be done from DRAM to work around hardware and firmware limitations of the x86-64 platform. In addition, some legacy device drivers depend on 32-bit addressable memory, while the Optane&trade; NVRAM populates physical addresses well above 4 GiB. However, as soon as the system is booted it runs completely in NVRAM and no longer uses DRAM.\r\n<\/p>\r\n\r\n<p>\r\nNote that with &#8220;NVRAM-ification&#8221; of Linux and FreeBSD,\r\nonly the main memory platform was replaced for both operating systems: a rigorous technology switch from DRAM to NVRAM was made without taking special precautions for efficient NVRAM operation. Both systems were adopted unchanged, except for the porting measures to be able to switch from DRAM to NVRAM. These system variants ported to NVM should not only provide a basis for the work envisaged in <a href=\"https:\/\/i4wpdev.cs.fau.de\/en\/research\/neon\">NEON<\/a> and <a href=\"https:\/\/i4wpdev.cs.fau.de\/en\/research\/PAVE\">PAVE<\/a>, but also enable, in particular, a quantitative and comparative analysis of the performance parameters of common (Unix-like) general-purpose operating systems with respect to DRAM and NVRAM. This means in particular that Linux as well as FreeBSD were not &#8220;<a href=\"https:\/\/i4wpdev.cs.fau.de\/en\/research\/redos-note\">REDOS<\/a>-ed&#8221;<\/strong> for these investigations, in order to prevent possible and &#8220;NVM-only&#8221; caused race conditions in the event of power failures by special system-software features running in the background.\r\n<\/p>\r\n\r\n<p>\r\nWe have established a nearly <strong>worst-case baseline<\/strong> for the possible performance of such a &#8220;NVRAM-ified&#8221; general-purpose operating system under heavy load. While the synthetic memory benchmarks showed a wide variety of performance penalties, all of the kernel build benchmarks only revealed a penalty of significantly less than 4x. Thus, the expected degradation was drowned in \u201csystem jitter\u201d to a large extent. The power draw increased only insignificantly and even decreased for several workloads, while the overall energy consumption was proportional to the prolonged execution times of the benchmarks.\r\n<\/p>\r\n\r\n<p>\r\nConsidering the higher read\/write latencies of Optane&trade; NVRAM compared to DRAM, the worse performance of these NVM-only Unioxids is not unexpected, but it is already within limits and falls into a range that already makes these solutions, which are unoptimized for NVRAM, suitable for certain application domains. High performance is not always the measure of all things! Sometimes it is more important to guarantee the timeliness of operations, even at the expense of speed. Likewise, it may be the premise to support efficient fault-tolerant operation of the computing system. For the latter, the NVRAM-enabled systems presented here would already not be a bad choice.\r\n<\/p>\r\n\r\n<h4>Project-related publications<\/h4>\r\n<div class=\"cris\"><ul class=\"cris-publications no-list\" lang=\"en\"><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/schroeder-preikschat\">Schr\u00f6der-Preikschat W.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">H\u00f6nig T.<\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/299615365?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">On energy awareness in NVRAM-based operating systems \u2013 NEON and PAVE<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">Schloss Dagstuhl -- Leibniz-Zentrum f\u00fcr Informatik (ed.): <\/span><span itemprop=\"name\"><strong>Power and Energy-Aware Computing on Heterogeneous Systems (PEACHES)<\/strong><\/span>, <span itemprop=\"datePublished\">2023<\/span>, p. <span itemprop=\"pagination\">43-44<\/span> (Dagstuhl Reports, Vol.Dagstuhl Seminar 22341)<\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.4230\/DagRep.12.8.31' target='blank' itemprop=\"sameAs\">10.4230\/DagRep.12.8.31<\/a><\/span><\/li><\/ul><\/div>\r\n<div class=\"cris\"><ul class=\"cris-publications no-list\" lang=\"en\"><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/rabenstein\">Rabenstein J.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Nguyen DT.<\/span>, <span class=\"author\" itemprop=\"author\">Giersch O.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/eichler\">Eichler C.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">H\u00f6nig T.<\/span>, <span class=\"author\" itemprop=\"author\">Nolte J.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/schroeder-preikschat\">Schr\u00f6der-Preikschat W.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/299599846?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">On the Performance of NVRAM-based Operating Systems: A Case Study with Linux and FreeBSD<\/a><\/strong><\/span><br \/> (<span itemprop=\"datePublished\">2023<\/span>)<br><span itemscope itemtype=\"http:\/\/schema.org\/Periodical\" itemid=\"#periodical_299599846\"><span itemprop=\"issn\">ISSN: 2191-5008<\/span><\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.25593\/issn.2191-5008\/CS-2023-01' target='blank' itemprop=\"sameAs\">10.25593\/issn.2191-5008\/CS-2023-01<\/a><\/li><\/ul><\/div>\r\n<div class=\"cris\"><ul class=\"cris-publications no-list\" lang=\"en\"><li itemscope itemtype=\"http:\/\/schema.org\/ScholarlyArticle\"><span class=\"author\" itemprop=\"author\"><a href=\"\/person\/rabenstein\">Rabenstein J.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">Nguyen DT.<\/span>, <span class=\"author\" itemprop=\"author\">Giersch O.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/eichler\">Eichler C.<\/a><\/span>, <span class=\"author\" itemprop=\"author\">H\u00f6nig T.<\/span>, <span class=\"author\" itemprop=\"author\">Nolte J.<\/span>, <span class=\"author\" itemprop=\"author\"><a href=\"\/person\/schroeder-preikschat\">Schr\u00f6der-Preikschat W.<\/a><\/span>:<br \/><span class=\"title\" itemprop=\"name\"><strong><a href=\"https:\/\/cris.fau.de\/publications\/313081129?lang=en_GB\" title=\"Detailansicht in neuem Fenster &ouml;ffnen\">Back to the Core-Memory Age: Running Operating Systems in NVRAM only<\/a><\/strong><\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Event\" style=\"font-style:italic\"><span itemprop=\"name\">Architecture of Computing Systems. ARCS 2023<\/span> (<span itemprop =\"location\" itemscope itemtype=\"http:\/\/schema.org\/PostalAddress\"><span itemprop=\"name\">Athen<\/span><\/span>, <span itemprop=\"startDate\" content=\"2023-06-13\">13. June 2023<\/span> - <span itemprop=\"endDate\" content=\"2023-06-15\">15. June 2023<\/span>)<\/span><br \/><span itemscope itemtype=\"http:\/\/schema.org\/Book\">In: <span itemprop=\"author\">Georgios Goumas, Sven Tomforde, J\u00fcrgen Brehm, Stefan Wildermann, Thilo Pionteck (ed.): <\/span><span itemprop=\"name\" style=\"font-weight:bold\">Lecture Notes in Computer Science<\/span> <span itemprop=\"datePublished\">2023<\/span><\/span><br \/>DOI: <a href='https:\/\/doi.org\/10.1007\/978-3-031-42785-5_11' target='blank' itemprop=\"sameAs\">10.1007\/978-3-031-42785-5_11<\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"Non-volatile main memory (NVM) The trend toward fast, byte-addressable non-volatile memory (i.e. NVM in the form of NVRAM) with latencies and write resistance closer to SRAM and DRAM than flash positions this new type of main memory as a possible replacement for established volatile technologies. While on the one hand the non-volatility and low leakage [&hellip;]","protected":false},"author":10,"featured_media":0,"parent":2103,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","_rrze_multilang_single_locale":"en_US","_rrze_multilang_single_source":"https:\/\/i4wpdev.cs.fau.de\/?page_id=6357","footnotes":""},"page_category":[],"class_list":["post-6360","page","type-page","status-publish","hentry","en-US"],"_links":{"self":[{"href":"https:\/\/i4wpdev.cs.fau.de\/wp-json\/wp\/v2\/pages\/6360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i4wpdev.cs.fau.de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/i4wpdev.cs.fau.de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/i4wpdev.cs.fau.de\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/i4wpdev.cs.fau.de\/wp-json\/wp\/v2\/comments?post=6360"}],"version-history":[{"count":14,"href":"https:\/\/i4wpdev.cs.fau.de\/wp-json\/wp\/v2\/pages\/6360\/revisions"}],"predecessor-version":[{"id":6396,"href":"https:\/\/i4wpdev.cs.fau.de\/wp-json\/wp\/v2\/pages\/6360\/revisions\/6396"}],"up":[{"embeddable":true,"href":"https:\/\/i4wpdev.cs.fau.de\/wp-json\/wp\/v2\/pages\/2103"}],"wp:attachment":[{"href":"https:\/\/i4wpdev.cs.fau.de\/wp-json\/wp\/v2\/media?parent=6360"}],"wp:term":[{"taxonomy":"page_category","embeddable":true,"href":"https:\/\/i4wpdev.cs.fau.de\/wp-json\/wp\/v2\/page_category?post=6360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}