再見(jiàn)!英特爾宣布將徹底關(guān)停這項(xiàng)業(yè)務(wù)
譯文作者丨Liam Proven
譯者 | 布加迪
審校丨Noe
英特爾近日砍掉了Optane持久內(nèi)存產(chǎn)品線,這對(duì)整個(gè)行業(yè)來(lái)說(shuō)無(wú)異于一場(chǎng)災(zāi)難。
上世紀(jì)60年代末70年代初的一些想法放在當(dāng)前依舊具有很普遍的影響力,幾乎無(wú)人不知,但緊隨其后的好想法基本上已被遺忘。
Optane是一種激進(jìn)的革命性技術(shù),但基于傳統(tǒng)觀點(diǎn)和技術(shù)債務(wù),業(yè)內(nèi)很少有人意識(shí)到Optane到底有多么激進(jìn)。
回到這個(gè)問(wèn)題的核心,不妨冷靜地問(wèn)一下:計(jì)算機(jī)文件的主要功能是什么?
首批計(jì)算機(jī)并沒(méi)有文件系統(tǒng)。上世紀(jì)四五十年代的巨型計(jì)算機(jī)由成千上萬(wàn)的熱陰極電子管組成,內(nèi)存只能存儲(chǔ)幾個(gè)字。起初,人們手動(dòng)將程序?qū)嶋H連入到計(jì)算機(jī)來(lái)完成程序錄入:只有數(shù)據(jù)在內(nèi)存中。程序運(yùn)行,輸出一些結(jié)果。
隨著存儲(chǔ)容量不斷增加,我們迎來(lái)了馮·諾依曼架構(gòu),其中計(jì)算機(jī)程序與數(shù)據(jù)一起存儲(chǔ)在同一內(nèi)存中。在一些早期的機(jī)器中,內(nèi)存是磁性存儲(chǔ):旋轉(zhuǎn)磁鼓。
為了將程序放入到內(nèi)存,從紙上讀取程序:打孔卡或紙帶。當(dāng)計(jì)算機(jī)內(nèi)存容量大到足以同時(shí)存儲(chǔ)幾個(gè)程序時(shí),操作系統(tǒng)出現(xiàn)了:這是管理其他程序的程序。
不過(guò)仍沒(méi)有文件系統(tǒng)。有RAM,也有I/O:打印機(jī)、終端和讀卡器等,但內(nèi)存就是計(jì)算機(jī)可以直接訪問(wèn)的全部存儲(chǔ)。在上世紀(jì)60年代,內(nèi)存常常意味著磁芯存儲(chǔ)器,它有一個(gè)現(xiàn)在有時(shí)被遺忘的巨大優(yōu)勢(shì):計(jì)算機(jī)關(guān)掉后,磁芯存儲(chǔ)器中的任何內(nèi)容都保留在那里。重新打開(kāi)計(jì)算機(jī),上一個(gè)程序依然存在。
大概在這個(gè)時(shí)候,首批硬盤(pán)驅(qū)動(dòng)器開(kāi)始面市:價(jià)格貴,速度較慢,但與工作內(nèi)存相比卻容量巨大。早期的操作系統(tǒng)被賦予了另一項(xiàng)工作:管理這龐大的輔助存儲(chǔ)器。索引內(nèi)容,找到需要的那些部分,并將它們加載到工作內(nèi)存中。
存儲(chǔ)的兩個(gè)級(jí)別
一旦操作系統(tǒng)開(kāi)始管理磁盤(pán)驅(qū)動(dòng)器,就有了主存儲(chǔ)和輔助存儲(chǔ)之分。兩者都可以被計(jì)算機(jī)直接訪問(wèn),不是像紙帶卷軸或打孔卡片那樣由操作人員加載卸載。主存儲(chǔ)直接出現(xiàn)在處理器的內(nèi)存映射(memory map)中,每個(gè)字都是直接可讀或可寫(xiě)的。
輔助存儲(chǔ)是容量更大、速度慢得多的存儲(chǔ)池,處理器無(wú)法直接看到,只能通過(guò)請(qǐng)求或發(fā)送整塊到另一個(gè)設(shè)備(磁盤(pán)控制器)來(lái)訪問(wèn),該設(shè)備從龐大存儲(chǔ)池獲取指定塊的內(nèi)容,或?qū)⑺鼈兎湃氲皆摯鎯?chǔ)池中。
這種分化一直延續(xù)到了七八十年代的8位微型計(jì)算機(jī)。筆者還記得將ZX Microdrive連接到48K ZX Spectrum。Spectrum一下子有了輔助存儲(chǔ)。Spectrum的Z80 CPU有64kB 的內(nèi)存映射,其中四分之一是ROM。盡管每個(gè)Microdrive磁帶只有100kB左右,但存儲(chǔ)量相當(dāng)于系統(tǒng)整個(gè)可用內(nèi)存的兩倍左右。所以必須有一定的間接性:無(wú)法將整個(gè)磁帶的內(nèi)容都加載到內(nèi)存中。
內(nèi)存裝不下。所以磁帶有索引,還有包含BASIC代碼、機(jī)器代碼、屏幕圖像或數(shù)據(jù)文件的命名塊。
自從微型計(jì)算機(jī)問(wèn)世以來(lái),我們?nèi)詫⒅鞔鎯?chǔ)稱(chēng)為“RAM”,仍將輔助存儲(chǔ)稱(chēng)為“磁盤(pán)”或“驅(qū)動(dòng)器”,盡管在許多現(xiàn)代最終用戶計(jì)算機(jī)中,它們都只是不同類(lèi)型的電子設(shè)備,沒(méi)有移動(dòng)部件或單獨(dú)的介質(zhì)。
可以將操作系統(tǒng)從“磁盤(pán)”加載到RAM來(lái)啟動(dòng)計(jì)算機(jī)。然后,想使用某個(gè)程序時(shí),操作系統(tǒng)將其從“磁盤(pán)”加載到RAM中,然后該程序可能會(huì)將部分?jǐn)?shù)據(jù)從磁盤(pán)加載到RAM中。即使它是一臺(tái)Chromebook,沒(méi)有任何其他本地應(yīng)用程序,單個(gè)應(yīng)用程序也會(huì)通過(guò)互聯(lián)網(wǎng)從另一臺(tái)計(jì)算機(jī)加載數(shù)據(jù),然后將數(shù)據(jù)從磁盤(pán)加載到RAM中,最后發(fā)送到筆記本電腦。
自從UNIX于1969年首次編寫(xiě)以來(lái),“一切都是文件”已成為一句口號(hào)。類(lèi)似Unix的操作系統(tǒng)將文件系統(tǒng)用于管理各種非文件操作:對(duì)機(jī)器的訪問(wèn)由文件上的元數(shù)據(jù)控制,訪問(wèn)I/O設(shè)備就像訪問(wèn)文件一樣,可以通過(guò)將聲音“復(fù)制”到音頻設(shè)備來(lái)播放聲音,等等。自1984年的UNIX V8問(wèn)世以來(lái),甚至還有一個(gè)名為/proc的假文件系統(tǒng),它可以生成用戶和程序可以讀取、在某些情況下可以寫(xiě)入的偽裝文件,顯示有關(guān)運(yùn)行中系統(tǒng)的內(nèi)存和進(jìn)程的信息。
文件是某種強(qiáng)大的手段,在1969年證明有廣泛的用途是不可想象的,當(dāng)時(shí)Unix是在一臺(tái)最多只能存儲(chǔ)64000個(gè)字、沒(méi)有聲音、圖形或網(wǎng)絡(luò)的小型計(jì)算機(jī)上編寫(xiě)的。如今文件卻無(wú)處不在。
但是文件和文件系統(tǒng)只是一副拐杖。
之所以發(fā)明“計(jì)算機(jī)文件”這一概念,是由于主存儲(chǔ)太小,輔助存儲(chǔ)太貴、太大、太慢。要將數(shù)百萬(wàn)字的存儲(chǔ)器連接到60年代的大型機(jī),唯一的方法是使用文件柜大小的磁盤(pán)驅(qū)動(dòng)器,不然存儲(chǔ)量太大,無(wú)法裝入到計(jì)算機(jī)的內(nèi)存映射中。
因此,大型機(jī)公司改而設(shè)計(jì)了磁盤(pán)控制器,并將一種數(shù)據(jù)庫(kù)做入到操作系統(tǒng)中。不妨設(shè)想一下,工資單程序能只有幾千字大小,可以為數(shù)萬(wàn)名員工處理文件,通過(guò)小塊執(zhí)行:從人事文件中讀取一行,從薪資文件中讀取一行,計(jì)算結(jié)果,并將一行寫(xiě)入到薪資文件,然后重復(fù)。操作系統(tǒng)檢查索引,并將其轉(zhuǎn)換成發(fā)給磁盤(pán)控制器的指令:“在這里,從磁道4、磁頭7、扇區(qū)65獲取塊47磁道52、磁頭12、扇區(qū)34和塊57……現(xiàn)在,將74.32寫(xiě)入此塊……”。
SSD出現(xiàn)在90年代,到本世紀(jì)頭十年,它們變得成本合理。SSD用電子存儲(chǔ)代替磁性存儲(chǔ),但仍然是輔助存儲(chǔ)。SSD假裝是磁盤(pán)驅(qū)動(dòng)器:計(jì)算機(jī)與磁盤(pán)控制器通信,并發(fā)送和接收扇區(qū),驅(qū)動(dòng)器轉(zhuǎn)換它們,以模擬寫(xiě)512字節(jié)扇區(qū)的硬盤(pán)式功能。
問(wèn)題是,閃存必須以這種方式來(lái)訪問(wèn)。直接映射到計(jì)算機(jī)的內(nèi)存太慢了,不可能逐字節(jié)重寫(xiě)閃存。為了修改閃存塊中的一個(gè)字節(jié),必須將整個(gè)塊的其余內(nèi)容復(fù)制到其他地方,然后擦除整個(gè)塊。計(jì)算機(jī)的內(nèi)存控制器不是這樣工作的。
未來(lái)在這里,但現(xiàn)在它消失了
有了Optane,就有可能消除這種情況。像磁芯存儲(chǔ)一樣,它是工作內(nèi)存:主存儲(chǔ)。Optane設(shè)備與磁盤(pán)驅(qū)動(dòng)器一樣大且便宜。它的容量達(dá)到數(shù)百GB,與普通SSD的容量相仿,但它可以直接裝到主板的DIMM插槽中。每個(gè)字節(jié)都出現(xiàn)在處理器的內(nèi)存映射中,每個(gè)字節(jié)都可以直接重寫(xiě)。無(wú)需像閃存那樣在塊周?chē)苿?dòng)以擦除它們。它還支持?jǐn)?shù)百萬(wàn)個(gè)寫(xiě)入周期,而不是數(shù)萬(wàn)個(gè)。
數(shù)百GB甚至TB級(jí)的動(dòng)態(tài)非易失性存儲(chǔ)比閃存快數(shù)千倍,可靠數(shù)千倍。不是磁盤(pán)控制器另一端的輔助存儲(chǔ),而是就在內(nèi)存映射中。
不,不是無(wú)限可重寫(xiě)的。因此你的計(jì)算機(jī)也需要一些RAM來(lái)保存變量和快速變化的數(shù)據(jù)。但是不是每次你想使用程序就從“磁盤(pán)”將程序“加載”到“RAM”,一個(gè)程序加載一次,然后它永遠(yuǎn)駐留在內(nèi)存器中,無(wú)論有沒(méi)有停電,無(wú)論你是否將計(jì)算機(jī)關(guān)掉一周去度假。重新打開(kāi)它,你的所有應(yīng)用程序仍然在內(nèi)存中。
無(wú)需安裝操作系統(tǒng),無(wú)需啟動(dòng),無(wú)需更多的應(yīng)用程序。操作系統(tǒng)始終在內(nèi)存中,你的應(yīng)用程序也是如此。如果你的計(jì)算機(jī)有1TB或2TB的非易失性內(nèi)存,你還需要SSD做什么?完全都是內(nèi)存。一小部分快速、幾乎可以無(wú)限重寫(xiě),但其內(nèi)容在斷電后會(huì)消失。剩下的95%永遠(yuǎn)保存著內(nèi)容。
當(dāng)然,如果系統(tǒng)是服務(wù)器,可能會(huì)有一些旋轉(zhuǎn)磁盤(pán),這樣可以管理PB級(jí)的數(shù)據(jù)。數(shù)據(jù)中心需要它,但很少有PC需要它。
Linux當(dāng)然支持這個(gè)。但是Linux終究是Linux,一切都必須是文件,因此它通過(guò)對(duì)文件進(jìn)行分區(qū)并使用文件系統(tǒng)對(duì)其進(jìn)行格式化來(lái)支持它。使用主存儲(chǔ)用軟件模擬輔助存儲(chǔ)。
目前主流操作系統(tǒng)都沒(méi)有理解計(jì)算機(jī)只有主存儲(chǔ),根本沒(méi)有輔助存儲(chǔ)的概念,而是分為小容量的易失性部分和大容量的非易失性部分。甚至很難向熟悉當(dāng)前計(jì)算機(jī)工作原理的人來(lái)描述,我試過(guò)。
如果沒(méi)有目錄,如何找到要運(yùn)行的程序?如果沒(méi)有地方好保存,如何保存內(nèi)容?當(dāng)因?yàn)闆](méi)有文件而無(wú)法將一個(gè)文件#include加入到另一個(gè)文件時(shí),你如何編譯代碼?生成的二進(jìn)制文件又放在哪里?
關(guān)于如何做到這一點(diǎn)有一些想法。比如Twizzler,這個(gè)研究項(xiàng)目研究如何使它看起來(lái)足夠像Unix系統(tǒng),以便現(xiàn)有軟件使用它?;萜盏囊晃粚?shí)驗(yàn)室研究員發(fā)明憶阻器后,惠普難捺興奮,提出了一些宏偉計(jì)劃……但把新技術(shù)推向大眾市場(chǎng)要花很長(zhǎng)時(shí)間,最終惠普還是放棄了。
但英特爾把它做成功了,將其投放市場(chǎng)……但沒(méi)有足夠多的人感興趣,現(xiàn)在它也心灰意冷了。
未來(lái)就在這里,但是從六十年代小型計(jì)算機(jī)操作系統(tǒng)設(shè)計(jì)來(lái)看,如果一切都是文件,這個(gè)Optane只是一種非??焖俚拇疟P(pán)驅(qū)動(dòng)器,是不是?
并非如此。它是自小型機(jī)以來(lái)向前邁出的最重大步驟。但是我們把它搞砸了。
再見(jiàn),Optane。我們還沒(méi)來(lái)得及熟悉你。
原文鏈接:
https://www.theregister.com/2022/08/01/optane_intel_cancellation/





















