序
動態隨機存取記憶體是電腦系統的核心部件,用來暫時保存計算所需的資料和中間結果。動態隨機存取記憶體的存取延遲時間遠遠小於硬碟甚至固態硬碟,微處理器需要先把存取的資料從硬碟讀取到記憶體中,然後在記憶體中直接對資料進行處理,最後再將資料寫回硬碟中。如果大部分資料都不在記憶體中,那麼程式的性能將受限於硬碟的讀取速度;同時,為了防止意外斷電造成的資料遺失或資料完整性被破壞,資料需要以阻塞的方式頻繁寫入硬碟,減少程式併發性並降低性能。
持久記憶體的出現可以從根本上解決上述問題,常用的資料可以常駐在持久記憶體中,微處理器可以直接存取及處理,不需要頻繁地向磁碟寫入。持久記憶體最先在儲存等場景獲得廣泛關注,2019 年英特爾發佈的傲騰持久記憶體把該技術的應用進一步拓展到雲端運算的各個細分領域。
●為什麼寫作本書
持久記憶體技術是記憶體領域革命性的技術,從根本上改變了記憶體和儲存裝置的界限。持久記憶體技術對產業界和學術界產生了深遠影響,涉及電腦微架構、系統硬體、軔體、作業系統、開發函數庫和應用軟體等許多領域。我們在推動持久記憶體在網際網路產業應用時發現,即使資深電腦產業從業者也需要花費幾個月閱讀大量的文獻並進行大量的實踐,才能充分掌握持久記憶體技術的核心概念並將其應用到自身的領域中。儘管國外的學術會議陸續有相關的研究發表,且發佈了持久記憶體程式設計庫的英文線上書籍,但仍然缺乏對持久記憶體系統性的介紹和應用實踐的複習,而且中文的資源基本處於空白狀態。與此相對的是,華人世界的雲端運算使用者和廠商對該技術的興趣非常高,一些早期應用原型甚至處於世界的前列。基於此,我們萌發了系統性地複習持久記憶體技術和應用實踐的想法,以推動持久記憶體應用技術在華人世界更快、更廣泛的傳播,促進更多的創新。
●關於本書作者
本書作者均就職於英特爾公司,從事持久記憶體的開發、驗證和應用等前端工作,具備豐富的理論知識和第一線實戰經驗,並與相關產業合作夥伴具有密切的合作。
第1 章由胡寅瑋負責,桂丙武參與編寫;第2 章由李翔負責,周瑜鋒、李軍、李志明參與編寫;第3 章由杜凡負責,任磊、楊偉參與編寫;第4 章由吳國安編寫;第5 章由束文輝編寫;第6 章由斯佩峰負責,吳國安、周雨馨參與編寫;第7 章由徐鋮負責,張建、杜煒、雙琳娜、劉獻陽等參與編寫;第8 章由李志明編寫。全書由李志明統稿。
●本書主要內容
本書共包括8 章,可以分為三部分:
■ 架構基礎。第 1 章介紹持久記憶體產生的背景及技術的分類;第 2 章介紹持久記憶體的硬體、軔體架構和性能。
■ 軟體、程式設計和最佳化。第 3 章介紹作業系統和虛擬化下的驅動實現;第4 章介紹程式設計模型和開發函數庫;第5 章介紹性能最佳化方法和工具。
■ 應用實踐。第 6 章介紹資料庫應用;第 7 章介紹巨量資料應用;第 8章介紹其他領域的應用。第6 章、第7 章中的案例多數由本書作者開發,第8 章中的案例來自公開文獻或經合作夥伴授權發佈。
李志明