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