国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
持久化內(nèi)存簡(jiǎn)介也稱為非易失性內(nèi)存(NVM)或內(nèi)存級(jí)存儲(chǔ)器(SCM)

本文來(lái)自持久化內(nèi)存文檔,該文檔上一次更新來(lái)自兩個(gè)月前,也就是2019年3月,但是感覺內(nèi)容應(yīng)該還是比較老了,可能初版有兩三年的歷史了~

一、持久化內(nèi)存概述

在過(guò)去的幾十年中,計(jì)算機(jī)系統(tǒng)已經(jīng)實(shí)現(xiàn)了圖1所示的存儲(chǔ)器存儲(chǔ)層次結(jié)構(gòu)。存儲(chǔ)器存儲(chǔ)層次結(jié)構(gòu)利用了局部性原理,它使頻繁訪問的數(shù)據(jù)保持在最接近CPU的位置。

連續(xù)幾代技術(shù)分別從緩存的數(shù)量,大小和速度進(jìn)行了改進(jìn),以此來(lái)確保CPU在緩存中可以訪問到最常用的數(shù)據(jù)。CPU速度變得越來(lái)越快,在每個(gè)新的CPU中添加更多的核和線程,他們?cè)噲D維護(hù)摩爾定律。

但是,易失性DRAM和非易失性存儲(chǔ)(如NAND SSD或硬盤驅(qū)動(dòng)器)的容量,價(jià)格和速度尚未跟上,這迅速成為系統(tǒng)和應(yīng)用程序性能的瓶頸。

                                                                                          圖1 內(nèi)存-存儲(chǔ)器層次結(jié)構(gòu)

持久化內(nèi)存(PMEM),也稱為非易失性內(nèi)存(NVM)或內(nèi)存級(jí)存儲(chǔ)器(SCM),在圖2所示的存儲(chǔ)器存儲(chǔ)層次結(jié)構(gòu)中提供了一個(gè)新的層級(jí),填補(bǔ)了現(xiàn)有層級(jí)性能/容量差距。

                                                        圖2 加上持久化內(nèi)存層的內(nèi)存-存儲(chǔ)器層次結(jié)構(gòu)

有了持久化內(nèi)存,應(yīng)用有了一個(gè)新的層級(jí)來(lái)進(jìn)行數(shù)據(jù)的放置,這個(gè)介于內(nèi)存和存儲(chǔ)器層級(jí)之間的持久化內(nèi)存提供了比DRAM更大的容量同時(shí)也有比存儲(chǔ)器更顯著的訪問速度。應(yīng)用可以像訪問傳統(tǒng)的內(nèi)存一樣訪問持久化內(nèi)存,無(wú)需在內(nèi)存和存儲(chǔ)器之間來(lái)回切換數(shù)據(jù)塊。

二、存儲(chǔ)網(wǎng)絡(luò)工業(yè)聯(lián)盟(SNIA)編程模型

存儲(chǔ)網(wǎng)絡(luò)工業(yè)聯(lián)盟和一些技術(shù)產(chǎn)業(yè)公司提出了一系列的標(biāo)準(zhǔn),其中有一個(gè)為NVM Programming Model,該模型支持持久化內(nèi)存的應(yīng)用程序開發(fā)。

想要了解該編程模型的更多信息可以訪問下面的地址:

NVM Programming Model Version 1.2

SNIA Persistent Memory website

SNIA每一年都會(huì)舉辦非易失性會(huì)議,論文和一些之前的會(huì)議內(nèi)容可以在下面的地址找到:

SNIA Persistent Memory home page

三、持久化內(nèi)存對(duì)于開發(fā)者而言意味著什么?

持久化內(nèi)存層提供給了開發(fā)者一個(gè)放置數(shù)據(jù)以及數(shù)據(jù)架構(gòu)的選擇。傳統(tǒng)的數(shù)據(jù)被read和write到易失性內(nèi)存(DRAM)上,然后被刷回到非易失性存儲(chǔ)器(SSD、HDD)上。當(dāng)一個(gè)應(yīng)用程序啟動(dòng)的時(shí)候,數(shù)據(jù)需要先從非易失性存儲(chǔ)器(SSD、HDD)上讀到易失性內(nèi)存(DRAM)才能被訪問。

簡(jiǎn)單點(diǎn)說(shuō)就是,傳統(tǒng)的read、write先寫內(nèi)存,然后再刷回磁盤,當(dāng)應(yīng)用啟動(dòng)時(shí),數(shù)據(jù)需要先從磁盤讀到內(nèi)存才能被訪問。

基于數(shù)據(jù)集的大小,這個(gè)從非易失性存儲(chǔ)器(SSD、HDD)上加載到易失性內(nèi)存(DRAM)的過(guò)程可能從秒級(jí)、分鐘級(jí)或者小時(shí)級(jí)不等,這個(gè)時(shí)間是非常長(zhǎng)的。

巧妙地程序設(shè)計(jì),開發(fā)者和應(yīng)用架構(gòu)師現(xiàn)在可以采用持久化內(nèi)存這種新技術(shù)去提高性能同時(shí)減少應(yīng)用的啟動(dòng)時(shí)間。

持久化內(nèi)存的出現(xiàn)帶來(lái)了一些不適用于傳統(tǒng)易失性內(nèi)存的新的編程關(guān)注點(diǎn),主要有如下內(nèi)容:

  • 數(shù)據(jù)持久性:

    • 在刷新之前,存儲(chǔ)不保證是持久的。雖然幾十年前的內(nèi)存映射文件API(如Linux上的mmap()和msync())也是如此,但許多程序員還沒有處理內(nèi)存刷新以保持持久性。遵循標(biāo)準(zhǔn)API(如msync()以刷新對(duì)持久性的更改)將按預(yù)期工作。但是,更優(yōu)化的刷新也是可能的,其中應(yīng)用程序直接從CPU緩存中刷新存儲(chǔ),而不是調(diào)用內(nèi)核。

    • CPU具有無(wú)序的CPU執(zhí)行和高速緩存訪問/刷新。這意味著如果應(yīng)用程序存儲(chǔ)了兩個(gè)值,它們變?yōu)槌志玫捻樞蚩赡懿皇菓?yīng)用程序編寫它們的順序。

  • 數(shù)據(jù)一致性:

    • 8字節(jié)存儲(chǔ)在x86架構(gòu)上具有掉電原子性  - 如果在對(duì)PMEM8字節(jié)對(duì)齊數(shù)據(jù)的存儲(chǔ)期間發(fā)生掉電,重啟后,在該位置要么是新的8字節(jié)要么是舊的8字節(jié),不會(huì)是兩者的組合(保持原子性,要么完成,要么沒完成)。

    • x86上大于8字節(jié)的任何內(nèi)容都不具有掉電原子性,因此需要軟件來(lái)實(shí)現(xiàn)一致性來(lái)進(jìn)行所需的任何事務(wù)/日志記錄/恢復(fù)。 請(qǐng)注意,這是特定于x86的 - 其他硬件平臺(tái)可能具有不同的原子大小(PMDK的設(shè)計(jì)使得使用它的應(yīng)用程序不必?fù)?dān)心這些細(xì)節(jié))。

  • 內(nèi)存泄漏:

    • 內(nèi)存泄漏到持久化內(nèi)存是持久的。重新啟動(dòng)服務(wù)器不會(huì)更改設(shè)備上的內(nèi)容。在當(dāng)前的易失性模型(DRAM)中,如果應(yīng)用程序泄漏內(nèi)存,則重新啟動(dòng)應(yīng)用程序或系統(tǒng)會(huì)釋放該內(nèi)存。

  • 字節(jié)級(jí)訪問:

    • 應(yīng)用程序開發(fā)人員可以根據(jù)應(yīng)用程序的需求在字節(jié)級(jí)別進(jìn)行讀寫。讀/寫不再需要對(duì)齊或等于存儲(chǔ)塊邊界,例如:512byte,4KiB或8KiB。存儲(chǔ)不需要讀取整個(gè)塊來(lái)修改幾個(gè)字節(jié),然后將整個(gè)塊寫回持久存儲(chǔ)。應(yīng)用程序可以根據(jù)需要隨意讀取/寫入。 這可以提高性能并減少內(nèi)存占用開銷。

  • 錯(cuò)誤處理:

    • 應(yīng)用程序可能需要直接檢測(cè)和處理硬件錯(cuò)誤。由于應(yīng)用程序可以直接訪問持久性內(nèi)存介質(zhì),因此任何錯(cuò)誤都將作為內(nèi)存錯(cuò)誤返回給應(yīng)用程序。

應(yīng)用程序開發(fā)人員可以使用傳統(tǒng)的系統(tǒng)調(diào)用如memcpy(),memmap()等來(lái)訪問持久性內(nèi)存設(shè)備。

這是一個(gè)具有挑戰(zhàn)性的途徑,它需要對(duì)持久存儲(chǔ)設(shè)備和CPU功能有深入的了解。為一個(gè)服務(wù)器平臺(tái)開發(fā)的應(yīng)用程序可能無(wú)法移植到不同的平臺(tái)或CPU。為了幫助應(yīng)用程序開發(fā)人員應(yīng)對(duì)這些挑戰(zhàn),可以下載并免費(fèi)使用開源持久性內(nèi)存開發(fā)工具包:

Persistent Memory Development Kit

有關(guān)PMDK的詳細(xì)信息,可以參閱如下的PMDK簡(jiǎn)介,安裝PMDK和PMDK程序員指南:

PMDK Introduction, Installing PMDK

PMDK Programmers Guide

在Linux和Windows上進(jìn)行了調(diào)整和驗(yàn)證,這些庫(kù)構(gòu)建在這些操作系統(tǒng)的Direct Access(DAX)功能之上,允許應(yīng)用程序?qū)⒊志眯詢?nèi)存作為內(nèi)存映射文件進(jìn)行訪問,如SNIA NVM編程模型中所述。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
計(jì)算、存儲(chǔ)技術(shù)迎來(lái)巨變——您準(zhǔn)備好了嗎
未來(lái)十年,存儲(chǔ)技術(shù)將迎來(lái)一場(chǎng)革命
內(nèi)存存儲(chǔ)原理
解釋概念:主存、輔存、Cache、RAM、SRAM、DRAM、ROM、PROM、EPROM、EEPR...
FPGA系統(tǒng)中DRAM,SRAM,SDRAM,FLASH 區(qū)別
正在消失的MCU與MPU之間的界限
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服