農林漁牧網

您現在的位置是:首頁 > 農業

再見!英特爾宣佈將徹底關停這項業務

2022-11-21由 51CTO 發表于 農業

電腦磁碟驅動器是什麼

譯者:布加迪

英特爾近日砍掉了Optane持久記憶體產品線,這對整個行業來說無異於一場災難。

上世紀60年代末70年代初的一些想法放在當前依舊具有很普遍的影響力,幾乎無人不知,但緊隨其後的好想法基本上已被遺忘。

Optane是一種激進的革命性技術,但基於傳統觀點和技術債務,業內很少有人意識到Optane到底有多麼激進。

回到這個問題的核心,不妨冷靜地問一下:計算機檔案的主要功能是什麼?

英特爾

再見!英特爾宣佈將徹底關停這項業務

首批計算機並沒有檔案系統。上世紀四五十年代的巨型計算機由成千上萬的熱陰極電子管組成,記憶體只能儲存幾個字。起初,人們手動將程式實際連入到計算機來完成程序錄入:只有資料在記憶體中。程式執行,輸出一些結果。

隨著儲存容量不斷增加,我們迎來了馮·諾依曼架構,其中計算機程式與資料一起儲存在同一記憶體中。在一些早期的機器中,記憶體是磁性儲存:旋轉磁鼓。

為了將程式放入到記憶體,從紙上讀取程式:打孔卡或紙帶。當計算機記憶體容量大到足以同時儲存幾個程式時,作業系統出現了:這是管理其他程式的程式。

不過仍沒有檔案系統。有RAM,也有I/O:印表機、終端和讀卡器等,但記憶體就是計算機可以直接訪問的全部儲存。在上世紀60年代,記憶體常常意味著磁芯儲存器,它有一個現在有時被遺忘的巨大優勢:計算機關掉後,磁芯儲存器中的任何內容都保留在那裡。重新開啟計算機,上一個程式依然存在。

大概在這個時候,首批硬碟驅動器開始面市:價格貴,速度較慢,但與工作記憶體相比卻容量巨大。早期的作業系統被賦予了另一項工作:管理這龐大的輔助儲存器。索引內容,找到需要的那些部分,並將它們載入到工作記憶體中。

儲存的兩個級別

一旦作業系統開始管理磁碟驅動器,就有了主儲存和輔助儲存之分。兩者都可以被計算機直接訪問,不是像紙帶卷軸或打孔卡片那樣由操作人員載入解除安裝。主儲存直接出現在處理器的記憶體對映(memory map)中,每個字都是直接可讀或可寫的。

輔助儲存是容量更大、速度慢得多的儲存池,處理器無法直接看到,只能透過請求或傳送整塊到另一個裝置(磁碟控制器)來訪問,該裝置從龐大儲存池獲取指定塊的內容,或將它們放入到該儲存池中。

這種分化一直延續到了七八十年代的8位微型計算機。筆者還記得將ZX Microdrive連線到48K ZX Spectrum。Spectrum一下子有了輔助儲存。Spectrum的Z80 CPU有64kB 的記憶體對映,其中四分之一是ROM。儘管每個Microdrive磁帶只有100kB左右,但儲存量相當於系統整個可用記憶體的兩倍左右。所以必須有一定的間接性:無法將整個磁帶的內容都載入到記憶體中。

記憶體裝不下。所以磁帶有索引,還有包含BASIC程式碼、機器程式碼、螢幕影象或資料檔案的命名塊。

自從微型計算機問世以來,我們仍將主儲存稱為“RAM”,仍將輔助儲存稱為“磁碟”或“驅動器”,儘管在許多現代終端使用者計算機中,它們都只是不同型別的電子裝置,沒有移動部件或單獨的介質。

可以將作業系統從“磁碟”載入到RAM來啟動計算機。然後,想使用某個程式時,作業系統將其從“磁碟”載入到RAM中,然後該程式可能會將部分資料從磁碟載入到RAM中。即使它是一臺Chromebook,沒有任何其他本地應用程式,單個應用程式也會透過網際網路從另一臺計算機載入資料,然後將資料從磁碟載入到RAM中,最後傳送到膝上型電腦。

自從UNIX於1969年首次編寫以來,“一切都是檔案”已成為一句口號。類似Unix的作業系統將檔案系統用於管理各種非檔案操作:對機器的訪問由檔案上的元資料控制,訪問I/O裝置就像訪問檔案一樣,可以透過將聲音“複製”到音訊裝置來播放聲音,等等。自1984年的UNIX V8問世以來,甚至還有一個名為/proc的假檔案系統,它可以生成使用者和程式可以讀取、在某些情況下可以寫入的偽裝檔案,顯示有關執行中系統的記憶體和程序的資訊。

檔案是某種強大的手段,在1969年證明有廣泛的用途是不可想象的,當時Unix是在一臺最多隻能儲存64000個字、沒有聲音、圖形或網路的小型計算機上編寫的。如今檔案卻無處不在。

但是檔案和檔案系統只是一副柺杖。

之所以發明“計算機檔案”這一概念,是由於主儲存太小,輔助儲存太貴、太大、太慢。要將數百萬字的儲存器連線到60年代的大型機,唯一的方法是使用檔案櫃大小的磁碟驅動器,不然儲存量太大,無法裝入到計算機的記憶體對映中。

因此,大型機公司改而設計了磁碟控制器,並將一種資料庫做入到作業系統中。不妨設想一下,工資單程式能只有幾千字大小,可以為數萬名員工處理檔案,透過小塊執行:從人事檔案中讀取一行,從薪資檔案中讀取一行,計算結果,並將一行寫入到薪資檔案,然後重複。作業系統檢查索引,並將其轉換成發給磁碟控制器的指令:“在這裡,從磁軌4、磁頭7、扇區65獲取塊47磁軌52、磁頭12、扇區34和塊57……現在,將74。32寫入此塊……”。

SSD出現在90年代,到本世紀頭十年,它們變得成本合理。SSD用電子儲存代替磁性儲存,但仍然是輔助儲存。SSD假裝是磁碟驅動器:計算機與磁碟控制器通訊,併發送和接收扇區,驅動器轉換它們,以模擬寫512位元組扇區的硬碟式功能。

問題是,快閃記憶體必須以這種方式來訪問。直接對映到計算機的記憶體太慢了,不可能逐位元組重寫快閃記憶體。為了修改快閃記憶體塊中的一個位元組,必須將整個塊的其餘內容複製到其他地方,然後擦除整個塊。計算機的記憶體控制器不是這樣工作的。

未來在這裡,但現在它消失了

有了Optane,就有可能消除這種情況。像磁芯儲存一樣,它是工作記憶體:主儲存。Optane裝置與磁碟驅動器一樣大且便宜。它的容量達到數百GB,與普通SSD的容量相仿,但它可以直接裝到主機板的DIMM插槽中。每個位元組都出現在處理器的記憶體對映中,每個位元組都可以直接重寫。無需像快閃記憶體那樣在塊周圍移動以擦除它們。它還支援數百萬個寫入週期,而不是數萬個。

數百GB甚至TB級的動態非易失性儲存比快閃記憶體快數千倍,可靠數千倍。不是磁碟控制器另一端的輔助儲存,而是就在記憶體對映中。

不,不是無限可重寫的。因此你的計算機也需要一些RAM來儲存變數和快速變化的資料。但是不是每次你想使用程式就從“磁碟”將程式“載入”到“RAM”,一個程式載入一次,然後它永遠駐留在記憶體器中,無論有沒有停電,無論你是否將計算機關掉一週去度假。重新開啟它,你的所有應用程式仍然在記憶體中。

無需安裝作業系統,無需啟動,無需更多的應用程式。作業系統始終在記憶體中,你的應用程式也是如此。如果你的計算機有1TB或2TB的非易失性記憶體,你還需要SSD做什麼?完全都是記憶體。一小部分快速、幾乎可以無限重寫,但其內容在斷電後會消失。剩下的95%永遠儲存著內容。

當然,如果系統是伺服器,可能會有一些旋轉磁碟,這樣可以管理PB級的資料。資料中心需要它,但很少有PC需要它。

Linux當然支援這個。但是Linux終究是Linux,一切都必須是檔案,因此它透過對檔案進行分割槽並使用檔案系統對其進行格式化來支援它。使用主儲存用軟體模擬輔助儲存。

目前主流作業系統都沒有理解計算機只有主儲存,根本沒有輔助儲存的概念,而是分為小容量的易失性部分和大容量的非易失性部分。甚至很難向熟悉當前計算機工作原理的人來描述,我試過。

如果沒有目錄,如何找到要執行的程式?如果沒有地方好儲存,如何儲存內容?當因為沒有檔案而無法將一個檔案#include加入到另一個檔案時,你如何編譯程式碼?生成的二進位制檔案又放在哪裡?

關於如何做到這一點有一些想法。比如Twizzler,這個研究專案研究如何使它看起來足夠像Unix系統,以便現有軟體使用它。惠普的一位實驗室研究員發明憶阻器後,惠普難捺興奮,提出了一些宏偉計劃……但把新技術推向大眾市場要花很長時間,最終惠普還是放棄了。

但英特爾把它做成功了,將其投放市場……但沒有足夠多的人感興趣,現在它也心灰意冷了。

未來就在這裡,但是從六十年代小型計算機作業系統設計來看,如果一切都是檔案,這個Optane只是一種非常快速的磁碟驅動器,是不是?

並非如此。它是自小型機以來向前邁出的最重大步驟。但是我們把它搞砸了。

再見,Optane。我們還沒來得及熟悉你。