題 為什麼RAM必須是易變的?


如果計算機RAM像其他持久存儲一樣非易失性,那麼就沒有啟動時間這樣的東西。那麼為什麼不具有非易失性ram模塊是不可行的呢?謝謝。


88
2017-08-30 10:03


起源


這個問題值得一個完整的答案但是T認為非易失性存儲器要慢得多。 - mveroone
是什麼讓你覺得它 不 必須是不穩定的?這不是40年前的事。 - Daniel R Hicks
RAM很不穩定 不 因為它 不得不 不穩定,這是因為它使用的技術 是 易揮發。 - Alvin Wong
@jhocking因為沒有可用性能相當的非易失性技術。 - Dan Neely
假設我從現在起2年就問過這個問題:為什麼你不記得在你問這個問題之前你喝的最後一種蘇打水味道是什麼? - Erik Reppen


答案:


當大多數人閱讀或聽到“RAM”時,他們會想到這些:

Two SDRAM sticks, courtesy of Wikipedia

實際上這些是由DRAM芯片製成的,如果DRAM是一種RAM,它就存在爭議。 (它曾經是“真正的”RAM,但技術已經改變,如果它是RAM,它更像是一種宗教信仰,請參閱評論中的討論。)

RAM是一個廣義的術語。它代表“隨機存取存儲器”,即任何類型的存儲器,可以按任何順序訪問(其中“訪問”我的意思是讀或寫,但某些類型的RAM可能是只讀的)。

例如,HDD不是隨機存取存儲器,因為當您嘗試讀取兩個不相鄰的位(或者您因任何原因以相反的順序讀取它們)時,您必須等待盤片旋轉並且標題移動。只能讀取連續位,而無需在其間進行額外操作。這也是為什麼DRAM可以被認為是非RAM的原因 - 它是用塊讀取的。

隨機存取存儲器有很多種。其中一些不易變,甚至只有隻讀,例如ROM。因此存在非易失性RAM。

我們為什麼不用它?速度不是最大的問題,例如NOR閃存可以像DRAM一樣快速讀取(至少那是什麼 維基百科 說,但沒有引用)。寫入速度更差,但最重要的問題是:

由於非易失性存儲器的內部架構,它們必須磨損。寫入和擦除週期的數量限制在100,000-1,000,000。它看起來像一個很好的數字,它通常足以用於非易失性存儲(pendrives不會經常破壞,對吧?),但這是一個已經必須在SSD驅動器中解決的問題。 RAM的寫入方式比SSD驅動器更頻繁,因此更容易磨損。

DRAM沒有磨損,速度快且相對便宜。 SRAM甚至更快,但也更昂貴。現在它在CPU中用於緩存。 (這毫無疑問是真正的RAM;))


113
2017-08-30 10:58



與0.1%的人正確陳述ROM的+1也是RAM! (說明D-RAM不是RAM有點極端但是......) - jlliagre
但原始磁盤驅動器被稱為“RAM”(因為另一種替代方案是磁帶)。如果歷史確定優先級,DASD(你年輕時稱之為硬盤)絕對是RAM。 - Daniel R Hicks
@DanielRHicks這很有趣。也許“RAMiness”不是二元的:DRAM就是 隨機性較小 與SRAM相比,HDD的隨機性低於DRAM等。 - gronostaj
如果你隨機訪問任何只訪問隨機點的內存 O(1) 無論當前狀態如何,就大小而言,DRAM是隨機訪問,HDD可以訪問 O(#tracks+rotation_time) 因大小而異 - ratchet freak
“RAM”是我相信(我找不到一個好的參考)反對派生的 順序 記憶(磁性或紙帶;水銀延遲線)可以 只要 按順序訪問。與此同時,我發現了其他語言中“RAM”的術語: smo.uhi.ac.uk/~oduibhin/tearmai/etymology.htm 它強調RAM / ROM差異的不同方面。 - pjc50


內心深處是因為物理學。

任何非易失性存儲器必須將其位存儲在兩個狀態之間,這兩個狀態之間具有較大的能量障​​礙,否則最小的影響將改變該位。但在寫入記憶時,我們必須積極克服能量障礙。

設計師在設置能量障礙方面有相當大的自由度。把它設置得低 0 . 1,你得到的內存可以被重寫很多而不會產生大量的熱量:快速和不穩定。將能量障礙設置得很高 0 | 1 這些位將幾乎永遠存在,或直到你耗費了大量精力。

DRAM使用洩漏的小電容器。較大的電容器洩漏較少,揮發性較小,但充電時間較長。

閃光燈使用以高電壓射入的電子進入隔離器。能量障礙是如此之高,以至於無法以可控的方式將它們排出;唯一的方法是清理整個塊位。


138
2017-08-30 15:23



很棒的答案!你真的回答了 為什麼 它以一種易於理解的方式而已。 - Synetech
接受的答案實際上並沒有回答這個問題,而這個答案卻是如此。 - Mark Adler
你可能會避免提及這個,因為它是 太 “物理學內心深處”,但我想說的是障礙不是能量而是能量 熵。 SRAM具有比DRAM更小的電容器,但不會洩漏,因為它使用場效應晶體管而不是電阻器 - 模糊地說,它通過外部提供的電壓閾值繞過熱噪聲干擾。只有少數芯片在未來縮小,我們才能達到另一種類型的干涉 - 量子隧穿 - 實際的能量屏障將是保存經典信息的唯一方法。 - leftaroundabout
@leftaroundabout:除了寄生和一些研究設計外,SRAM根本沒有電容器。 - MSalters
@leftaroundabout:SRAM和DRAM都不能存儲更長時間的位而沒有某種形式的刷新(將0.2轉回到清脆的0位)。 SRAM就是這樣做的,而DRAM則是在重寫週期中完成​​的。 - MSalters


應該指出的是 計算機中第一個常用的“主要商店”是“核心”  - 鐵氧體材料的微小環形排列成陣列,導線沿3個方向穿過它們。

要寫入1,您需要通過相應的X和Y線發送相等強度的脈衝,以“翻轉”核心。 (要寫一個零你不會。)你必須在寫之前擦除位置。

為了閱讀你,你試著寫一個1並看看是否在“sense”線上產生了相應的脈衝 - 如果是這樣的話 以前是 零。然後你當然必須把數據寫回去,因為你剛剛刪除了它。

(這是一個  簡而言之,當然。)

但這些東西是不穩定的。  您可以關閉計算機,一周後啟動它,數據仍然存在。它絕對是“RAM”。

(在“核心”之前,大多數計算機直接在磁性“鼓”上運行,只有幾個CPU內存寄存器,以及一些用於存儲CRT的東西。)

因此,關於為什麼RAM(當前最常見,最常見的形式)不穩定的答案就是這種形式既便宜又快速。 (有趣的是,英特爾是  開發半導體RAM的早期領導者,只有進入CPU業務才能為他們的RAM創造市場。)


23
2017-08-30 11:45



是否通常設計基於核心的計算機,以便在意外斷電後(重新上電時)可以在停止運行的地方恢復運行?我的猜想是,如果一個人執行了“關閉”程序,可以讓系統將所有感興趣的內容保存到核心中,然後開始執行NOP直到斷電;如果在重新啟動時使用了正確的程序,則可以恢復系統狀態。您是否知道如果外部電源丟失,系統通常是否具有自動觸發關機程序的方法?如果基於核心的系統是... - supercat
......由於電力故障而停止運作,並且沒有機會完成任何正在進行的操作,然後才能完全斷電,我希望無論採取什麼樣的記憶單位都會丟失;此外,由於我希望程序計數器,順控程序等不會保存在核心內存中,因此這些內容也會丟失。 - supercat
@supercat - 有各種各樣的設計。主要是努力集中在維護文件系統的完整性,因此崩潰恢復最有可能嘗試查找正在進行的文件操作並完成這些操作。但我記得檢測電源故障和存儲CPU寄存器是相當常見的。 - Daniel R Hicks
如果內存被用作文件系統,我希望代碼可以確保它始終處於有效狀態,這樣任何中斷的操作都可以回滾或運行完成。另一方面,據我所知,核心記憶經常被使用 因為 它是非易失性的,而是因為它比任何替代品都便宜,所以我很好奇設計師在多大程度上利用了非波動性或者只是忽略了它。 - supercat
@supercat - 他們經常利用它(因此,例如,文件系統不像人們對易失性RAM那樣強大)。並不是說它是一個很大的“賣點”,但它就在那裡,為什麼不呢? - Daniel R Hicks


DRAM 速度快,可以廉價製造到極高的密度(低$ / MB和cm2/ MB),但除非經常刷新,否則會失去狀態。它非常小的尺寸是問題的一部分;電子通過薄壁漏出。

SRAM 非常快,便宜(低美元/ MB),密度低,不需要刷新,但一旦切斷電源就會失去狀態。 SRAM結構用於“NVRAM”,它是連接到小電池的RAM。我有一些Sega和Nintendo墨盒,它們存儲在NVRAM中有數十年的保存狀態。

EEPROM (通常以“Flash”的形式)是非易失性的,寫入速度慢,但便宜且密集。

FRAM (鐵電RAM)是新一代存儲技術之一,可以滿足您的需求:快速,廉價,非易失性......但尚未密集。你可以得到一個 使用它的TI微控制器 並提供您想要的行為。切斷電源並恢復它可以讓你從中斷的地方恢復。但它只有64k字節的東西。或者你可以得到 2Mbit串行FRAM

正在研究“憶阻器”技術,以提供與FRAM類似的特性,但尚未真正成為商業產品。


編輯:請注意,如果你有一個RAM持久性系統,你需要弄清楚如何在它運行時應用更新或接受偶爾重啟的需要  失去你所有的工作。有許多智能手機前的PDA將所有數據存儲在NVRAM中,如果電池電量不足,您可以立即開啟並立即丟失所有數據。


18
2017-08-30 12:55



Yay憶阻器技術,在我們看到基於這些“新”設備的酷炫產品之前,它將至少10年或更長時間。但他們應該對內存實現抱有很大的希望。 - Chris O
DRUM速度快,但密度不高,每個角色的成本很高。 (什麼?? DRAM ???沒關係。) - Daniel R Hicks
NVRAM與電池備份SRAM不同。 NVRAM每位有一個電容,可以充分絕緣,任何電荷都不會洩漏,但也可以被感應和編程。位單元結構相當大,並且在一些技術中涉及更多異乎尋常的製造步驟,因此NVRAM是低密度高成本技術。但它的存儲壽命也很長。 CMOS SRAM在空閒時消耗很少的功率,因此用電池備份是經濟有效的。曾經常見的PC“CMOS”器件就是一個例子。 - RBerteig
SRAM +電池組件不是真正的NVRAM。真正的NVRAM基於EEPROM構建。 - user539484
@RBerteig:我的理解是NVRAM是SRAM與非易失性存儲器和足夠大的能量存儲介質的結合,以允許SRAM在沒有外部電源的情況下被複製到非易失性存儲器。如果SRAM和非易失性存儲器位於單獨的芯片中,則將一個芯片轉移到另一個芯片需要一段時間(並消耗大量能量)。將它們結合在一起可以更快地進行轉移。 - supercat


IMO這裡的主要問題確實是波動性。要快速寫入,寫入必須容易(即不需要延長的時間段)。這與您在選擇RAM時要看到的內容相矛盾:它必須快速。

日常比喻: - 在白板上寫東西很容易,幾乎不費吹灰之力。因此速度很快,您可以在幾秒鐘內完成全程草圖。 - 但是,您在白板上的草圖非常不穩定。一些錯誤的運動,一切都消失了。 - 拿一塊石板在那裡雕刻你的素描 - 就像 摩登原始人 風格 - 你的草圖將在那裡停留多年,幾十年甚至幾個世紀。寫這個需要更長的時間。

回到電腦: 使用快速芯片存儲持久數據的技術已經存在(如閃存驅動器),但與易失性RAM相比,速度仍然低很多。看看一些閃存驅動器並比較數據。你會發現像“以200 MB / s讀取”和“以50 MB / s寫入”之類的東西。這是一個很大的不同。當然,產品價格在這裡有一定的作用,但是,一般的訪問時間可能會增加花費更多的錢,但閱讀仍然會比寫作更快。

“但是刷新BIOS怎麼樣?內置并快速!”你可能會問。你是對的,但你有沒有刷過BIOS圖像?通過BIOS啟動只需片刻 - 大部分時間都浪費在等待外部硬件上 - 但實際閃存可能需要幾分鐘,即使它只需幾千字節來刻錄/寫入。

但是,此問題有解決方法,例如Windows的Hybernate功能。 RAM內容被寫入非易失性存儲器(如HDD),然後在回讀時寫入。上網本上的一些BIOS為使用隱藏硬盤分區的一般BIOS配置和設置提供了類似的功能(所以即使在冷啟動時你也基本上跳過BIOS的東西)。


6
2017-08-30 10:20





主要是因為 22條軍規。如果你的DRAM(如已經說過, 內存 是非常廣泛的術語。你在說什麼叫 DRAM,與 d 對於動態)突然變得非易變,人們會稱之為 NVRAM 這是非常不同的存儲類型。

還有一個實際的原因,目前沒有NVRAM(我的意思是真正的基於EEPROM的NVRAM,不需要電源)類型,允許無限數量的寫入而不會降低硬件。


關於基於DRAM的大容量存儲設備:看一下Gigabyte i-RAM(注意可充電鋰離子電池,這會讓它在一段時間內不易揮發)

a


6
2017-08-30 23:06





實際上,嚴格來說,RAM並不需要是易變的,但為了方便起見,我們通常會這樣做。請參閱Wikipedia上的Magnetic Ram(http://en.wikipedia.org/wiki/Magnetoresistive_random-access_memory)對於一種潛在的非易失性RAM技術,儘管還需要進一步開發以供實際使用。

基本上,DRAM的優勢在於尺寸。這是一種非常簡單的技術,具有非常快的讀寫特性,但結果是易失性的。閃存具有良好的讀取特性,但與RAM所需的相比,速度非常低。

靜態RAM具有非常有利的讀寫特性,並且功耗非常低,但與DRAM相比具有大的元件數,因此更加昂貴。 (更大的矽片尺寸=更多的故障+每個芯片更少的芯片數量=更多的成本)它也是不穩定的,但即使是一個小電池也可以供電一段時間,如果它不是為了成本,它就是一種psudo-NVRAM問題。

無論是MRAM還是其他技術,很可能在未來的某個時刻,我們會找到一種方法來解決目前對分層內存結構的需求,這種結構會減慢計算機速度,我們還沒有。即使這個時代到來,我們仍然可能需要各種長期可靠(讀取:SLOW)存儲介質來存檔數據。


3
2017-09-02 07:53